[PR #1987] [CLOSED] Fix pmtentry dangling pointer #2789

Closed
opened 2026-01-29 17:23:54 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/CCExtractor/ccextractor/pull/1987
Author: @THE-Amrit-mahto-05
Created: 1/6/2026
Status: Closed

Base: masterHead: fix-pmtentry-dangling-pointer


📝 Commits (4)

  • 5c5bc36 fix: add NULL checks to Rust FFI exports
  • 25f6c39 rustfmt: format FFI NULL safety tests
  • dc8d01d fix(rust-ffi): avoid returning pointer to stack-allocated PMTEntry
  • 46dbc77 actully that time i forget to run rustfmt

📊 Changes

3 files changed (+114 additions, -30 deletions)

View changed files

📝 src/rust/src/ctorust.rs (+32 -2)
📝 src/rust/src/libccxr_exports/bitstream.rs (+49 -28)
📝 src/rust/src/libccxr_exports/mod.rs (+33 -0)

📄 Description

[FIX] Critical Rust FFI memory safety: avoid returning pointer to stack-allocated PMTEntry

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.

Description

PR fixes a use-after-scope (dangling pointer) bug in the Rust FFI layer.

The implementation of:

impl FromCType<*mut PMT_entry> for *mut PMTEntry

previously returned a raw pointer derived from a stack-allocated PMTEntry.
Once the function returned, the stack frame was destroyed, leaving the pointer
dangling and causing undefined behavior in Rust.

This is a correctness and memory-safety issue independent of C-side usage,
tests, or call order.

Fixes #1986


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/CCExtractor/ccextractor/pull/1987 **Author:** [@THE-Amrit-mahto-05](https://github.com/THE-Amrit-mahto-05) **Created:** 1/6/2026 **Status:** ❌ Closed **Base:** `master` ← **Head:** `fix-pmtentry-dangling-pointer` --- ### 📝 Commits (4) - [`5c5bc36`](https://github.com/CCExtractor/ccextractor/commit/5c5bc3686d22a96703de1841f8689838c5d8c77f) fix: add NULL checks to Rust FFI exports - [`25f6c39`](https://github.com/CCExtractor/ccextractor/commit/25f6c39933841a4f924bc169af1a412e9045e5bc) rustfmt: format FFI NULL safety tests - [`dc8d01d`](https://github.com/CCExtractor/ccextractor/commit/dc8d01d45c1a8f8cca39c9c796710ce8b0de11c6) fix(rust-ffi): avoid returning pointer to stack-allocated PMTEntry - [`46dbc77`](https://github.com/CCExtractor/ccextractor/commit/46dbc776127672ebacc3c4c732a2fc078395334b) actully that time i forget to run rustfmt ### 📊 Changes **3 files changed** (+114 additions, -30 deletions) <details> <summary>View changed files</summary> 📝 `src/rust/src/ctorust.rs` (+32 -2) 📝 `src/rust/src/libccxr_exports/bitstream.rs` (+49 -28) 📝 `src/rust/src/libccxr_exports/mod.rs` (+33 -0) </details> ### 📄 Description <!-- Please prefix your pull request with one of the following: **[FEATURE]** **[FIX]** **[IMPROVEMENT]**. --> **[FIX] Critical Rust FFI memory safety: avoid returning pointer to stack-allocated PMTEntry** **In raising this pull request, I confirm the following (please check boxes):** - [x] I have read and understood the [contributors guide](https://github.com/CCExtractor/ccextractor/blob/master/.github/CONTRIBUTING.md). - [x] I have checked that another pull request for this purpose does not exist. - [x] I have considered, and confirmed that this submission will be valuable to others. - [x] I accept that this submission may not be used, and the pull request closed at the will of the maintainer. - [x] 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. --- ### Description PR fixes a **use-after-scope (dangling pointer) bug** in the Rust FFI layer. The implementation of: ```rust impl FromCType<*mut PMT_entry> for *mut PMTEntry ``` previously returned a raw pointer derived from a stack-allocated PMTEntry. Once the function returned, the stack frame was destroyed, leaving the pointer dangling and causing undefined behavior in Rust. This is a correctness and memory-safety issue independent of C-side usage, tests, or call order. Fixes #1986 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-29 17:23:54 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ccextractor#2789