Skip to content

Commit 5d9528d

Browse files
committed
ffi: Reject timescales that don't fit in u32 instead of truncating.
1 parent 5572fb9 commit 5d9528d

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

mp4parse_capi/src/lib.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,10 @@ pub unsafe extern "C" fn mp4parse_get_track_info(
680680
let track = &context.tracks[track_index];
681681

682682
if let (Some(timescale), Some(context_timescale)) = (track.timescale, context.timescale) {
683-
info.time_scale = timescale.0 as u32;
683+
info.time_scale = match timescale.0.try_into() {
684+
Ok(v) => v,
685+
Err(_) => return Mp4parseStatus::Invalid,
686+
};
684687
let media_time: CheckedInteger<u64> = track
685688
.media_time
686689
.map_or(0.into(), |media_time| media_time.0.into());

0 commit comments

Comments
 (0)