Heap Out-of-bounds WRITE in read()
There is a Heap Out-of-bounds WRITE bug/vulnerability in VLC 2.1.5 when parsing a MJPG file (attached).
Basically, it is a type conversion vulnerability: an unsigned i_buflen in a reading function that reads from a zcat pipe passed from a function that can pass (user-controlled?) negative values, that of course become huge positive values.
I have a file that reproduces the behavior and triggers the overflow, writing ~45K of heap memory.
n = read (fd, p_buf, i_buflen);
fd - descriptor of a zcat pipe, input read from the file, so in theory user controllable?
p_buf - buffer
i_buflen - in my file, it becomes 4294963556, overflowing p_buf
The parameter i_buflen is computed two functions down in the call stack (decomp.c:210) as buflen - length. Since length might be user controllable, I can make it negative.
I guess this works on Windows too, cause the read is just a recv with the same parameters passed.
What makes it difficult to exploit is that it looks like we don't have enough control of length, and we will end up crashing something by writing so much memory, but this looks worth a look and a fix.
ASAN output:
==17720== ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60920014429c at pc 0x7ffff4e56fdd bp 0x7fffe5160930 sp 0x7fffe5160918
WRITE of size 47282 at 0x60920014429c thread T3
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7ffff4e56fdc (/usr/lib/x86_64-linux-gnu/libasan.so.0.0.0+0xbfdc)
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7ffff3e9372e (/usr/local/lib/libvlccore.so.7.0.0+0x15072e)
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fffee14aee9 (/usr/local/lib/vlc/plugins/stream_filter/libdecomp_plugin.so+0x2ee9)
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fffee14ae28 (/usr/local/lib/vlc/plugins/stream_filter/libdecomp_plugin.so+0x2e28)
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7ffff3e3f153 (/usr/local/lib/libvlccore.so.7.0.0+0xfc153)
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fffecf16bab (/usr/local/lib/vlc/plugins/stream_filter/librecord_plugin.so+0x1bab)
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7ffff3e3f153 (/usr/local/lib/libvlccore.so.7.0.0+0xfc153)
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fffdbd30572 (/usr/local/lib/vlc/plugins/demux/libavformat_plugin.so+0xe572)
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x7fffdba2cac1 (/usr/lib/x86_64-linux-gnu/libavformat.so.54.20.4+0x2cac1)
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x7fffdbac8f4a (/usr/lib/x86_64-linux-gnu/libavformat.so.54.20.4+0xc8f4a)
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x7fffdbabd3f2 (/usr/lib/x86_64-linux-gnu/libavformat.so.54.20.4+0xbd3f2)
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x7fffdbac9726 (/usr/lib/x86_64-linux-gnu/libavformat.so.54.20.4+0xc9726)
[#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x7fffdbacb5b9 (/usr/lib/x86_64-linux-gnu/libavformat.so.54.20.4+0xcb5b9)
[#13](https://code.videolan.org/videolan/vlc/-/issues/13) 0x7fffdbacd722 (/usr/lib/x86_64-linux-gnu/libavformat.so.54.20.4+0xcd722)
[#14](https://code.videolan.org/videolan/vlc/-/issues/14) 0x7fffdbd28c20 (/usr/local/lib/vlc/plugins/demux/libavformat_plugin.so+0x6c20)
[#15](https://code.videolan.org/videolan/vlc/-/issues/15) 0x7ffff3eba94f (/usr/local/lib/libvlccore.so.7.0.0+0x17794f)
[#16](https://code.videolan.org/videolan/vlc/-/issues/16) 0x7ffff3eb9d2d (/usr/local/lib/libvlccore.so.7.0.0+0x176d2d)
[#17](https://code.videolan.org/videolan/vlc/-/issues/17) 0x7ffff3eba3f0 (/usr/local/lib/libvlccore.so.7.0.0+0x1773f0)
[#18](https://code.videolan.org/videolan/vlc/-/issues/18) 0x7ffff3ebaaaa (/usr/local/lib/libvlccore.so.7.0.0+0x177aaa)
[#19](https://code.videolan.org/videolan/vlc/-/issues/19) 0x7ffff3dedaae (/usr/local/lib/libvlccore.so.7.0.0+0xaaaae)
[#20](https://code.videolan.org/videolan/vlc/-/issues/20) 0x7ffff3e276bc (/usr/local/lib/libvlccore.so.7.0.0+0xe46bc)
[#21](https://code.videolan.org/videolan/vlc/-/issues/21) 0x7ffff3e1cf2c (/usr/local/lib/libvlccore.so.7.0.0+0xd9f2c)
[#22](https://code.videolan.org/videolan/vlc/-/issues/22) 0x7ffff3e152b6 (/usr/local/lib/libvlccore.so.7.0.0+0xd22b6)
[#23](https://code.videolan.org/videolan/vlc/-/issues/23) 0x7ffff3dbadc7 (/usr/local/lib/libvlccore.so.7.0.0+0x77dc7)
[#24](https://code.videolan.org/videolan/vlc/-/issues/24) 0x7ffff3dbb46d (/usr/local/lib/libvlccore.so.7.0.0+0x7846d)
[#25](https://code.videolan.org/videolan/vlc/-/issues/25) 0x7ffff4e63b97 (/usr/lib/x86_64-linux-gnu/libasan.so.0.0.0+0x18b97)
[#26](https://code.videolan.org/videolan/vlc/-/issues/26) 0x7ffff49f9181 (/lib/x86_64-linux-gnu/libpthread-2.19.so+0x8181)
[#27](https://code.videolan.org/videolan/vlc/-/issues/27) 0x7ffff4521fbc (/lib/x86_64-linux-gnu/libc-2.19.so+0xfafbc)
0x60920014429c is located 3740 bytes to the right of 32768-byte region [0x60920013b400,0x609200143400)
allocated by thread T3 here:
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7ffff4e6041a (/usr/lib/x86_64-linux-gnu/libasan.so.0.0.0+0x1541a)
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fffdbd2850b (/usr/local/lib/vlc/plugins/demux/libavformat_plugin.so+0x650b)
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7ffff3eba94f (/usr/local/lib/libvlccore.so.7.0.0+0x17794f)
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7ffff3eb9d2d (/usr/local/lib/libvlccore.so.7.0.0+0x176d2d)
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7ffff3eba3f0 (/usr/local/lib/libvlccore.so.7.0.0+0x1773f0)
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7ffff3ebaaaa (/usr/local/lib/libvlccore.so.7.0.0+0x177aaa)
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7ffff3dedaae (/usr/local/lib/libvlccore.so.7.0.0+0xaaaae)
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7ffff3e276bc (/usr/local/lib/libvlccore.so.7.0.0+0xe46bc)
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x7ffff3e1cf2c (/usr/local/lib/libvlccore.so.7.0.0+0xd9f2c)
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x7ffff3e152b6 (/usr/local/lib/libvlccore.so.7.0.0+0xd22b6)
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x7ffff3dbadc7 (/usr/local/lib/libvlccore.so.7.0.0+0x77dc7)
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x7ffff3dbb46d (/usr/local/lib/libvlccore.so.7.0.0+0x7846d)
[#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x7ffff4e63b97 (/usr/lib/x86_64-linux-gnu/libasan.so.0.0.0+0x18b97)
Thread T3 created by T0 here:
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7ffff4e55b5b (/usr/lib/x86_64-linux-gnu/libasan.so.0.0.0+0xab5b)
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7ffff3efb698 (/usr/local/lib/libvlccore.so.7.0.0+0x1b8698)
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7ffff3efb8ec (/usr/local/lib/libvlccore.so.7.0.0+0x1b88ec)
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7ffff3dba7f6 (/usr/local/lib/libvlccore.so.7.0.0+0x777f6)
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7ffff3db29df (/usr/local/lib/libvlccore.so.7.0.0+0x6f9df)
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7ffff3dc233b (/usr/local/lib/libvlccore.so.7.0.0+0x7f33b)
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7ffff3dc0304 (/usr/local/lib/libvlccore.so.7.0.0+0x7d304)
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7ffff3dc00fa (/usr/local/lib/libvlccore.so.7.0.0+0x7d0fa)
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x7ffff3d92785 (/usr/local/lib/libvlccore.so.7.0.0+0x4f785)
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x7ffff3d92046 (/usr/local/lib/libvlccore.so.7.0.0+0x4f046)
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x7ffff4c1a76a (/usr/local/lib/libvlc.so.5.4.0+0xb76a)
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x401c59 (/usr/local/bin/vlc+0x401c59)
[#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x7ffff4448ec4 (/lib/x86_64-linux-gnu/libc-2.19.so+0x21ec4)
Shadow bytes around the buggy address:
0x0c12c0020800: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c12c0020810: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c12c0020820: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c12c0020830: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c12c0020840: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c12c0020850: fa fa fa[fa]fa fa fa fa fa fa fa fa fa fa fa fa
0x0c12c0020860: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c12c0020870: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c12c0020880: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c12c0020890: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c12c00208a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Heap righ redzone: fb
Freed Heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack partial redzone: f4
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
ASan internal: fe
==17720== ABORTING
GDB bt full:
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x00007ffff445dbb9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
resultvar = 0
pid = 17720
selftid = 17726
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x00007ffff4460fc8 in __GI_abort () at abort.c:89
save_stage = 2
act = {__sigaction_handler = {sa_handler = 0x6, sa_sigaction = 0x6}, sa_mask = {__val = {13274670303408, 13274670303408, 140737351947607, 140733193388037, 0, 8192,
140737291410728, 8, 13274670303408, 140737302153374, 140737351976213, 0, 18446744073709551615, 18446744073709551615, 0, 140737354047488}}, sa_flags = -186202377,
sa_restorer = 0x7ffff4e6c6f7}
sigs = {__val = {32, 0 <repeats 15 times>}}
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x00007ffff4e66829 in ?? () from /usr/lib/x86_64-linux-gnu/libasan.so.0
No symbol table info available.
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x00007ffff4e5d3ec in ?? () from /usr/lib/x86_64-linux-gnu/libasan.so.0
No symbol table info available.
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x00007ffff4e64012 in ?? () from /usr/lib/x86_64-linux-gnu/libasan.so.0
No symbol table info available.
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x00007ffff4e63121 in __asan_report_error () from /usr/lib/x86_64-linux-gnu/libasan.so.0
No symbol table info available.
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x00007ffff4e56ff8 in read () from /usr/lib/x86_64-linux-gnu/libasan.so.0
No symbol table info available.
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x00007ffff3e9372f in net_Read (p_this=0x60260006f998, fd=10, vs=0x0, p_buf=0x60920014429c, i_buflen=4294963556, waitall=false) at network/io.c:285
n = 44755199912116380
ufd = {{fd = 10, events = 1, revents = 179}, {fd = 12, events = 1, revents = 0}}
i_total = 0
__PRETTY_FUNCTION__ = "net_Read"
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x00007fffee14aeea in Read (stream=0x60260006f998, buf=0x60920014429c, buflen=4294963556) at decomp.c:215
p_sys = 0x601a000317a0
peeked = 0x0
length = 0
__PRETTY_FUNCTION__ = "Read"
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x00007fffee14ae29 in Read (stream=0x60260006f998, buf=0x60920013fb4e, buflen=14514) at decomp.c:210
p_sys = 0x601a000317a0
peeked = 0x609a00034400
length = 18254
__PRETTY_FUNCTION__ = "Read"
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x00007ffff3e3f154 in stream_Read (s=0x60260006f998, p_read=0x60920013b400, i_read=32768) at input/stream.c:1843
No locals.
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x00007fffecf16bac in Read (s=0x60260006f6d8, p_read=0x60920013b400, i_read=32768) at record.c:125
p_sys = 0x6004000594f0
p_record = 0x60920013b400
i_record = 48
[#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x00007ffff3e3f154 in stream_Read (s=0x60260006f6d8, p_read=0x60920013b400, i_read=32768) at input/stream.c:1843
No locals.
[#13](https://code.videolan.org/videolan/vlc/-/issues/13) 0x00007fffdbd30573 in IORead (opaque=0x60280002f958,
buf=0x60920013b400 "\330w\035\004\246K\264Ͽ\362\253/~c}\230\374\315bE!\363\001\030ϽiCcq6\\\306\333}i\372\211\062I\357\232l|\307 \372ս\222\267\065FHʁ\264n\365\253\021\335\061\214n\\\236\374\320\027\324\313 ,jj\006\031\035\352U\223\071\343\037\215\063\315\366\375i\253\210\252bf;\227'\025v\316\332W\f\\m\351֚$\317\360\232r\273s\264\342\230\022C\036\030\234\364\253\n\271\317\065\016\345\214\022\314\005\067r\267\335\071\305E\200\237\311\fę\002\375h6\221\241\a\223\355Q\247\071\247\254\273{~\264\323\v\244J\221F\204\220\t\372\232s0u\306\061\357U\226|g\345\375j@\333{f\220\017\215\244"..., buf_size=32768) at avformat/demux.c:980
p_demux = 0x60280002f958
i_ret = 0
[#14](https://code.videolan.org/videolan/vlc/-/issues/14) 0x00007fffdba2cac2 in fill_buffer (s=0x60200001f340) at /build/buildd/libav-9.16/libavformat/aviobuf.c:395
dst = 0x60920013b400 "\330w\035\004\246K\264Ͽ\362\253/~c}\230\374\315bE!\363\001\030ϽiCcq6\\\306\333}i\372\211\062I\357\232l|\307 \372ս\222\267\065FHʁ\264n\365\253\021\335\061\214n\\\236\374\320\027\324\313 ,jj\006\031\035\352U\223\071\343\037\215\063\315\366\375i\253\210\252bf;\227'\025v\316\332W\f\\m\351֚$\317\360\232r\273s\264\342\230\022C\036\030\234\364\253\n\271\317\065\016\345\214\022\314\005\067r\267\335\071\305E\200\237\311\fę\002\375h6\221\241\a\223\355Q\247\071\247\254\273{~\264\323\v\244J\221F\204\220\t\372\232s0u\306\061\357U\226|g\345\375j@\333{f\220\017\215\244"...
len = <optimized out>
max_buffer_size = 32768
[#15](https://code.videolan.org/videolan/vlc/-/issues/15) avio_read (s=s@entry=0x60200001f340, buf=0x607200164445 "", size=5721, size@entry=8606) at /build/buildd/libav-9.16/libavformat/aviobuf.c:474
len = <optimized out>
size1 = 8606
[#16](https://code.videolan.org/videolan/vlc/-/issues/16) 0x00007fffdbac8f4b in av_get_packet (s=0x60200001f340, pkt=pkt@entry=0x7fffe5160dc0, size=8606) at /build/buildd/libav-9.16/libavformat/utils.c:227
ret = <optimized out>
[#17](https://code.videolan.org/videolan/vlc/-/issues/17) 0x00007fffdbabd3f3 in smjpeg_read_packet (s=0x60480003ea80, pkt=0x7fffe5160dc0) at /build/buildd/libav-9.16/libavformat/smjpegdec.c:158
sc = 0x600a0000efc0
dtype = <optimized out>
size = <optimized out>
timestamp = 400
ret = <optimized out>
[#18](https://code.videolan.org/videolan/vlc/-/issues/18) 0x00007fffdbac9727 in ff_read_packet (s=s@entry=0x60480003ea80, pkt=pkt@entry=0x7fffe5160dc0) at /build/buildd/libav-9.16/libavformat/utils.c:624
pktl = 0x0
ret = <optimized out>
i = <optimized out>
st = <optimized out>
[#19](https://code.videolan.org/videolan/vlc/-/issues/19) 0x00007fffdbacb5ba in read_frame_internal (s=s@entry=0x60480003ea80, pkt=pkt@entry=0x7fffe5160f50) at /build/buildd/libav-9.16/libavformat/utils.c:1125
st = <optimized out>
cur_pkt = {pts = -9223372036854775808, dts = -9223372036854775808, data = 0x607200163900 "\377\330\377\340\307\020JFIF", size = 8606, stream_index = 0, flags = 0,
side_data = 0x0, side_data_elems = 0, duration = 0, destruct = 0x7fffdad68080 <av_destruct_packet>, priv = 0x0, pos = 29883, convergence_duration = 0}
ret = <optimized out>
i = <optimized out>
[#20](https://code.videolan.org/videolan/vlc/-/issues/20) 0x00007fffdbacd723 in avformat_find_stream_info (ic=0x60480003ea80, options=<optimized out>) at /build/buildd/libav-9.16/libavformat/utils.c:2342
i = <optimized out>
count = 4
ret = <optimized out>
read_size = 29783
j = <optimized out>
st = <optimized out>
pkt1 = {pts = -9223372036854775808, dts = -9223372036854775808, data = 0x6074000ac900 "\377\330\377\340\307\020JFIF", size = 9020, stream_index = 0, flags = 0,
side_data = 0x0, side_data_elems = 0, duration = 0, destruct = 0x0, priv = 0x0, pos = -1, convergence_duration = 0}
pkt = <optimized out>
orig_nb_streams = <optimized out>
[#21](https://code.videolan.org/videolan/vlc/-/issues/21) 0x00007fffdbd28c21 in OpenDemux (p_this=0x60280002f958) at avformat/demux.c:253
p_demux = 0x60280002f958
p_sys = 0x601000016320
pd = {filename = 0x60080008ae50 "/tmp/asa\b", buf = 0x609a00034480 "", buf_size = 51022}
fmt = 0x7fffdbd1fa00 <ff_smjpeg_demuxer>
i = 440528
i_start_time = -1
b_can_seek = false
psz_url = 0x60080008ae50 "/tmp/asa\b"
error = 0
psz_format = 0x0
psz_opts = 0x0
options = 0x7fffe5161168
nb_streams = 1
t = 0x7fffe51629c0
[#22](https://code.videolan.org/videolan/vlc/-/issues/22) 0x00007ffff3eba950 in generic_start (func=0x7fffdbd27902 <OpenDemux>, ap=0x7fffe5161730) at modules/modules.c:351
obj = 0x60280002f958
activate = 0x7fffdbd27902 <OpenDemux>
[#23](https://code.videolan.org/videolan/vlc/-/issues/23) 0x00007ffff3eb9d2e in module_load (obj=0x60280002f958, m=0x601a00009010, init=0x7ffff3eba83d <generic_start>, args=0x7fffe5161880) at modules/modules.c:185
ap = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fffe51619f0, reg_save_area = 0x7fffe5161920}}
ret = 0
[#24](https://code.videolan.org/videolan/vlc/-/issues/24) 0x00007ffff3eba3f1 in vlc_module_load (obj=0x60280002f958, capability=0x7ffff3f60220 "demux", name=0x7ffff3f9e583 "", strict=true, probe=0x7ffff3eba83d <generic_start>)
at modules/modules.c:277
cand = 0x601a00009010
ret = -1
i = 50
buf = "any\000F`\000\000\000\004\000\000\000\000\000\000\240\027\003\000\032`\000\000P\236\005\000\004`\000"
slen = 3
shortcut = 0x7fffe51618c0 "any"
var = 0x0
mods = 0x60340002f600
total = 63
module = 0x0
b_force_backup = false
args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffe51619f0, reg_save_area = 0x7fffe5161920}}
__PRETTY_FUNCTION__ = "vlc_module_load"
[#25](https://code.videolan.org/videolan/vlc/-/issues/25) 0x00007ffff3ebaaab in module_need (obj=0x60280002f958, cap=0x7ffff3f60220 "demux", name=0x600400059450 "", strict=true) at modules/modules.c:366
No locals.
[#26](https://code.videolan.org/videolan/vlc/-/issues/26) 0x00007ffff3dedaaf in demux_New (p_obj=0x60220002fdd8, p_parent_input=0x60220002fdd8, psz_access=0x600c0003bc60 "file", psz_demux=0x7ffff3f69920 "",
psz_location=0x600800027dd0 "/tmp/asan_heap-oob_7f9adf616fdd_1699_br_09.mjpg", s=0x60260006f6d8, out=0x600800027f50, b_quick=true) at input/demux.c:188
p_demux = 0x60280002f958
psz_module = 0x600400059450 ""
psz_ext = 0x600800027d7b "mjpg"
[#27](https://code.videolan.org/videolan/vlc/-/issues/27) 0x00007ffff3e276bd in InputSourceInit (p_input=0x60220002fdd8, in=0x60540006cd30, psz_mrl=0x600c00025d00 "file:///tmp/asan_heap-oob_7f9adf616fdd_1699_br_09.mjpg",
psz_forced_demux=0x0, b_in_can_fail=false) at input/input.c:2535
p_access = 0x60280002fc58
i_input_list = 0
ppsz_input_list = 0x0
psz_stream_filter = 0x0
psz_access = 0x600c0003bc60 "file"
psz_demux = 0x7ffff3f69920 ""
psz_path = 0x600c0003bc67 "/tmp/asan_heap-oob_7f9adf616fdd_1699_br_09.mjpg"
psz_anchor = 0x7ffff3f69920 ""
psz_var_demux = 0x0
f_fps = 0
__PRETTY_FUNCTION__ = "InputSourceInit"
psz_dup = 0x600c0003bc60 "file"
i_pts_delay = 140737036819808
[#28](https://code.videolan.org/videolan/vlc/-/issues/28) 0x00007ffff3e1cf2d in Init (p_input=0x60220002fdd8) at input/input.c:1225
p_meta = 0x0
i = 0
i_length = 0
[#29](https://code.videolan.org/videolan/vlc/-/issues/29) 0x00007ffff3e152b7 in input_Preparse (p_parent=0x60380000a018, p_item=0x60280001a8c0) at input/input.c:200
p_input = 0x60220002fdd8
[#30](https://code.videolan.org/videolan/vlc/-/issues/30) 0x00007ffff3dbadc8 in Preparse (obj=0x60380000a018, p_item=0x60280001a8c0) at playlist/preparser.c:137
i_type = 1
[#31](https://code.videolan.org/videolan/vlc/-/issues/31) 0x00007ffff3dbb46e in Thread (data=0x6018000079c0) at playlist/preparser.c:217
p_current = 0x60280001a8c0
p_preparser = 0x6018000079c0
obj = 0x60380000a018
[#32](https://code.videolan.org/videolan/vlc/-/issues/32) 0x00007ffff4e63b98 in ?? () from /usr/lib/x86_64-linux-gnu/libasan.so.0
No symbol table info available.
[#33](https://code.videolan.org/videolan/vlc/-/issues/33) 0x00007ffff49f9182 in start_thread (arg=0x7fffe5162700) at pthread_create.c:312
__res = <optimized out>
p_access = 0x60280002fc58
i_input_list = 0
ppsz_input_list = 0x0
psz_stream_filter = 0x0
psz_access = 0x600c0003bc60 "file"
psz_demux = 0x7ffff3f69920 ""
psz_path = 0x600c0003bc67 "/tmp/asan_heap-oob_7f9adf616fdd_1699_br_09.mjpg"
psz_anchor = 0x7ffff3f69920 ""
psz_var_demux = 0x0
f_fps = 0
__PRETTY_FUNCTION__ = "InputSourceInit"
psz_dup = 0x600c0003bc60 "file"
i_pts_delay = 140737036819808
[#28](https://code.videolan.org/videolan/vlc/-/issues/28) 0x00007ffff3e1cf2d in Init (p_input=0x60220002fdd8) at input/input.c:1225
p_meta = 0x0
i = 0
i_length = 0
[#29](https://code.videolan.org/videolan/vlc/-/issues/29) 0x00007ffff3e152b7 in input_Preparse (p_parent=0x60380000a018, p_item=0x60280001a8c0) at input/input.c:200
p_input = 0x60220002fdd8
[#30](https://code.videolan.org/videolan/vlc/-/issues/30) 0x00007ffff3dbadc8 in Preparse (obj=0x60380000a018, p_item=0x60280001a8c0) at playlist/preparser.c:137
i_type = 1
[#31](https://code.videolan.org/videolan/vlc/-/issues/31) 0x00007ffff3dbb46e in Thread (data=0x6018000079c0) at playlist/preparser.c:217
p_current = 0x60280001a8c0
p_preparser = 0x6018000079c0
obj = 0x60380000a018
[#32](https://code.videolan.org/videolan/vlc/-/issues/32) 0x00007ffff4e63b98 in ?? () from /usr/lib/x86_64-linux-gnu/libasan.so.0
No symbol table info available.
[#33](https://code.videolan.org/videolan/vlc/-/issues/33) 0x00007ffff49f9182 in start_thread (arg=0x7fffe5162700) at pthread_create.c:312
__res = <optimized out>
---Type <return> to continue, or q <return> to quit---
pd = 0x7fffe5162700
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737036822272, 4905195451019242664, 0, 0, 140737036822976, 140737036822272, -4905251868611105624, -4905219918019482456},
mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out>
__PRETTY_FUNCTION__ = "start_thread"
#34 (closed) 0x00007ffff4521fbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 No locals. }}}