|
| 1 | +https://github.com/CCExtractor/ccextractor/pull/1939 |
| 2 | + |
| 3 | +--- a/src/rust/src/avc/core.rs 2025-12-29 14:56:33.000000000 +0100 |
| 4 | ++++ b/src/rust/src/avc/core.rs 2025-12-31 13:05:32.666299390 +0100 |
| 5 | +@@ -8,7 +8,9 @@ |
| 6 | + use lib_ccxr::common::AvcNalType; |
| 7 | + use lib_ccxr::util::log::DebugMessageFlag; |
| 8 | + use lib_ccxr::{debug, info}; |
| 9 | +-#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] |
| 10 | ++#[cfg(target_arch = "x86")] |
| 11 | ++use std::arch::x86::*; |
| 12 | ++#[cfg(target_arch = "x86_64")] |
| 13 | + use std::arch::x86_64::*; |
| 14 | + use std::os::raw::c_void; |
| 15 | + use std::slice; |
| 16 | +--- a/src/rust/src/libccxr_exports/demuxer.rs 2025-12-29 14:56:33.000000000 +0100 |
| 17 | ++++ b/src/rust/src/libccxr_exports/demuxer.rs 2025-12-31 13:05:44.276819712 +0100 |
| 18 | +@@ -11,6 +11,13 @@ |
| 19 | + use std::ffi::CStr; |
| 20 | + use std::os::raw::{c_char, c_int, c_uchar, c_uint, c_void}; |
| 21 | + |
| 22 | ++/// Poison pattern used to detect uninitialized pointers (0xCD repeated). |
| 23 | ++/// This pattern is commonly used by debug memory allocators. |
| 24 | ++#[cfg(target_pointer_width = "64")] |
| 25 | ++const POISON_PTR_PATTERN: usize = 0xcdcdcdcdcdcdcdcd; |
| 26 | ++#[cfg(target_pointer_width = "32")] |
| 27 | ++const POISON_PTR_PATTERN: usize = 0xcdcdcdcd; |
| 28 | ++ |
| 29 | + // External C function declarations |
| 30 | + extern "C" { |
| 31 | + fn activity_input_file_closed(); |
| 32 | +@@ -266,7 +273,7 @@ |
| 33 | + .PIDs_programs |
| 34 | + .iter() |
| 35 | + .filter_map(|&buffer_ptr| { |
| 36 | +- if buffer_ptr.is_null() || buffer_ptr as usize == 0xcdcdcdcdcdcdcdcd { |
| 37 | ++ if buffer_ptr.is_null() || buffer_ptr as usize == POISON_PTR_PATTERN { |
| 38 | + None |
| 39 | + } else { |
| 40 | + Some(Box::into_raw(Box::new(PMTEntry::from_ctype(*buffer_ptr)?))) |
0 commit comments