[PR #1732] fix: rust bitstream segfault #2453

Open
opened 2026-01-29 17:22:14 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/CCExtractor/ccextractor/pull/1732

State: closed
Merged: Yes


In raising this pull request, I confirm the following (please check boxes):

  • I have read and understood the contributors guide.
  • I have checked that another pull request for this purpose does not exist.
  • I have considered, and confirmed that this submission will be valuable to others.
  • I accept that this submission may not be used, and the pull request closed at the will of the maintainer.
  • I give this submission freely, and claim no ownership to its content.
  • I have mentioned this change in the changelog.

My familiarity with the project is as follows (check one):

  • I have never used CCExtractor.
  • I have used CCExtractor just a couple of times.
  • I absolutely love CCExtractor, but have not contributed previously.
  • I am an active contributor to CCExtractor.

This PR fixes a bug where an "exhausted" C bitstream (one that has been fully read, where pos == end) would lose its buffer context when converted to Rust and back. The current logic treats this state the same as an uninitialized stream causing the original buffer location to be lost.

The fix ensures that even an exhausted stream creates a zero-length Rust slice that retains the original base pointer so that the pointers are preserved during the conversions.

**Original Pull Request:** https://github.com/CCExtractor/ccextractor/pull/1732 **State:** closed **Merged:** Yes --- <!-- Please prefix your pull request with one of the following: **[FEATURE]** **[FIX]** **[IMPROVEMENT]**. --> **In raising this pull request, I confirm the following (please check boxes):** - [ ] I have read and understood the [contributors guide](https://github.com/CCExtractor/ccextractor/blob/master/.github/CONTRIBUTING.md). - [ ] I have checked that another pull request for this purpose does not exist. - [ ] I have considered, and confirmed that this submission will be valuable to others. - [ ] I accept that this submission may not be used, and the pull request closed at the will of the maintainer. - [ ] I give this submission freely, and claim no ownership to its content. - [x] **I have mentioned this change in the [changelog](https://github.com/CCExtractor/ccextractor/blob/master/docs/CHANGES.TXT).** **My familiarity with the project is as follows (check one):** - [ ] I have never used CCExtractor. - [ ] I have used CCExtractor just a couple of times. - [ ] I absolutely love CCExtractor, but have not contributed previously. - [x] I am an active contributor to CCExtractor. --- This PR fixes a bug where an "exhausted" C bitstream (one that has been fully read, where pos == end) would lose its buffer context when converted to Rust and back. The current logic treats this state the same as an uninitialized stream causing the original buffer location to be lost. The fix ensures that even an exhausted stream creates a zero-length Rust slice that retains the original base pointer so that the pointers are preserved during the conversions.
claunia added the pull-request label 2026-01-29 17:22:14 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ccextractor#2453