Memory Corruption in TrackCreateSamplesIndex
The attached file causes memory corruption in the 'TrackCreateSamplesIndex' function (vlc/modules/demux/mp4/mp4.c) Below is a backtrace of the crash
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x00007fffee5750db in TrackCreateSamplesIndex (p_demux_track=0x7fffe9c08530, p_demux=0x7fffe8c04cb8) at mp4/mp4.c:1491
i_used = 0
i_rest = 0
i_entry = <optimized out>
i_sample_count = 58434037
i = <optimized out>
stsz = <optimized out>
stts = 0x7fffe8c06300
i_sample = <optimized out>
i_chunk = <optimized out>
i_index_sample_used = 0
p_sys = <optimized out>
p_box = <optimized out>
i_index = 2099620
i_next_dts = 3093143935
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) MP4_TrackCreate (p_demux=0x7fffe8c04cb8, p_track=0x7fffe9c08530, p_box_trak=<optimized out>, b_force_enable=false) at mp4/mp4.c:2637
p_sys = 0x7fffe8c05750
p_tkhd = <optimized out>
p_elst = <optimized out>
p_mdhd = <optimized out>
p_udta = <optimized out>
p_hdlr = <optimized out>
p_vmhd = <optimized out>
p_smhd = <optimized out>
language = "und"
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x00007fffee57728f in Open (p_this=0x7fffe8c04cb8) at mp4/mp4.c:589
p_demux = 0x7fffe8c04cb8
p_sys = <optimized out>
p_peek = 0x7fffe8004a10 ""
p_ftyp = <optimized out>
p_rmra = <optimized out>
p_mvhd = <optimized out>
p_trak = <optimized out>
i = <optimized out>
b_seekable = true
b_enabled_es = <optimized out>
b_smooth = <optimized out>
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x00007ffff717a36d in module_load (obj=<optimized out>, m=0x6bc8b0, init=0x7ffff717a2b0 <generic_start>, args=0x7ffff3034908) at modules/modules.c:185
ap = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7ffff3034a50, reg_save_area = 0x7ffff3034960}}
ret = 0
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x00007ffff717a74d in vlc_module_load (obj=<optimized out>, capability=0x7ffff71ab771 "demux", name=0x7ffff71abab3 "", strict=true, probe=0x7ffff717a2b0 <generic_start>) at modules/modules.c:277
cand = 0x6bc8b0
ret = <optimized out>
i = <optimized out>
buf = "any\000\377\177\000\000`5F\367\377\177\000\000\270L\300\350\377\177\000\000\270J\300\350\377\177\000"
slen = <optimized out>
shortcut = 0x7ffff3034930 "any"
var = 0x0
mods = 0x7fffe8c04ec0
total = 63
module = 0x0
b_force_backup = false
args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7ffff3034a50, reg_save_area = 0x7ffff3034960}}
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x00007ffff7141559 in demux_New (p_obj=<optimized out>, p_parent_input=<optimized out>, psz_access=0x7fffe8c04eb2 "mp4", psz_demux=0x7ffff71c3525 "", psz_location=<optimized out>, s=<optimized out>, out=0x7fffe8003fe0, b_quick=true) at input/demux.c:188
p_demux = 0x7fffe8c04cb8
psz_module = 0x7fffe8c04d70 ""
psz_ext = <optimized out>
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x00007ffff714d5a3 in InputSourceInit (p_input=<optimized out>, in=<optimized out>, psz_mrl=<optimized out>, psz_forced_demux=<optimized out>, b_in_can_fail=false) at input/input.c:2535
p_access = 0x7fffe8004398
i_input_list = <optimized out>
ppsz_input_list = <optimized out>
psz_stream_filter = 0x1 <Address 0x1 out of bounds>
psz_access = 0x7fffe8004290 "file"
psz_demux = 0x7ffff71c3525 ""
psz_path = 0x7fffe8004297 "/home/fuzz/fuzzing/tmp/bff-crash-gcGvhn/sf_64ade313647f1ebd0b6c382ebf44aabc-98814.mp4"
psz_anchor = 0x7ffff71c3525 ""
psz_var_demux = <optimized out>
f_fps = <optimized out>
__PRETTY_FUNCTION__ = "InputSourceInit"
psz_dup = <optimized out>
i_pts_delay = <optimized out>
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x00007ffff714e509 in Init (p_input=0x7fffe8000978) at input/input.c:1225
p_meta = <optimized out>
i = <optimized out>
i_length = <optimized out>
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x00007ffff714fa30 in input_Preparse (p_parent=<optimized out>, p_item=<optimized out>) at input/input.c:200
p_input = 0x7fffe8000978
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x00007ffff7133c25 in Preparse (p_item=0x6dc9c0, obj=0x6df178) at playlist/preparser.c:137
i_type = 1
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) Thread (data=0x6f7050) at playlist/preparser.c:217
p_current = 0x6dc9c0
p_preparser = 0x6f7050
obj = 0x6df178
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x00007ffff79aae9a in start_thread (arg=0x7ffff3035700) at pthread_create.c:308
__res = <optimized out>
pd = 0x7ffff3035700
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1, -7429356966708825595, 140737488348256, 140737270471104, 0, 3, 7429383804317282821, 7429373710089269765}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out>
__PRETTY_FUNCTION__ = "start_thread"
#12 (closed) 0x00007ffff74d3ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 No locals. #13 (closed) 0x0000000000000000 in ?? () No symbol table info available.
rax 0x7fffec35d010 140737156337680 rbx 0x4000ba 4194490 rcx 0x0 0 rdx 0x7fffed35e010 140737173118992 rsi 0x200997 2099607 rdi 0x7fffe9408f40 140737106710336 rbp 0xb85da17f 0xb85da17f rsp 0x7ffff3034710 0x7ffff3034710 r8 0x7fffe9c09000 140737115099136 r9 0x0 0 r10 0x7fffe9406970 140737106700656 r11 0x7fffe8c068b0 140737098311856 r12 0x0 0 r13 0x37ba1f5 58434037 r14 0x7fffe9c08ae0 140737115097824 r15 0x2009a4 2099620 rip 0x7fffee5750db 0x7fffee5750db <MP4_TrackCreate+2523> eflags 0x10206 [ PF IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0
=> 0x7fffee5750db <MP4_TrackCreate+2523>: movsxd r9,DWORD PTR [r8] }}}