[FFmpeg-trac] #456(avcodec:new): Invalid read in get_vlc2
FFmpeg
trac at avcodec.org
Sun Sep 11 00:20:57 CEST 2011
#456: Invalid read in get_vlc2
--------------------------------------+---------------------------------
Reporter: cehoyos | Owner:
Type: defect | Status: new
Priority: important | Component: avcodec
Version: git-master | Keywords:
Blocked By: | Blocking:
Reproduced by developer: 1 | Analyzed by developer: 0
--------------------------------------+---------------------------------
Found using fenrir's text file.
{{{
(gdb) r -i audio-switch-z14-2.m2ts
Starting program: ffmpeg_g -i audio-switch-z14-2.m2ts
[Thread debugging using libthread_db enabled]
ffmpeg version N-32449-g8fd1da5, Copyright (c) 2000-2011 the FFmpeg
developers
built on Sep 10 2011 23:48:36 with gcc 4.5.3
configuration: --cc='/usr/local/gcc-4.5.3/bin/gcc -m32' --disable-
optimizations
libavutil 51. 16. 0 / 51. 16. 0
libavcodec 53. 13. 0 / 53. 13. 0
libavformat 53. 12. 0 / 53. 12. 0
libavdevice 53. 3. 0 / 53. 3. 0
libavfilter 2. 39. 0 / 2. 39. 0
libswscale 2. 1. 0 / 2. 1. 0
...
Program received signal SIGSEGV, Segmentation fault.
0x0853a034 in get_vlc2 (s=0xffffc884, table=0x0, bits=7, max_depth=1) at
libavcodec/get_bits.h:514
514 GET_VLC(code, re, s, table, bits, max_depth);
(gdb) bt
#0 0x0853a034 in get_vlc2 (s=0xffffc884, table=0x0, bits=7, max_depth=1)
at libavcodec/get_bits.h:514
#1 0x0853cda8 in vc1_parse_frame_header_adv (v=0x8cb9f08, gb=0xffffc884)
at libavcodec/vc1.c:854
#2 0x083fcc93 in vc1_extract_headers (s=0x8cb9da0, avctx=0x8ca1de0,
buf=0x8d0f340 "", buf_size=52777)
at libavcodec/vc1_parser.c:69
#3 0x083fced6 in vc1_parse (s=0x8cb9da0, avctx=0x8ca1de0,
poutbuf=0xffffcbf4, poutbuf_size=0xffffcbf8,
buf=0x8d0f340 "", buf_size=52777) at libavcodec/vc1_parser.c:160
#4 0x08369ead in av_parser_parse2 (s=0x8cb9da0, avctx=0x8ca1de0,
poutbuf=0xffffcbf4,
poutbuf_size=0xffffcbf8, buf=0x8cfde60 "", buf_size=7058,
pts=55092341, dts=55084835, pos=355460)
at libavcodec/parser.c:149
#5 0x0814e1b0 in read_frame_internal (s=0x8c9caa0, pkt=0xffffcbe4) at
libavformat/utils.c:1162
#6 0x08151c14 in avformat_find_stream_info (ic=0x8c9caa0,
options=0x8ca4fe0) at libavformat/utils.c:2385
#7 0x080555ba in opt_input_file (o=0xffffcebc, opt=0xffffd285 "i",
filename=0xffffd287 "audio-switch-z14-2.m2ts") at ffmpeg.c:3207
#8 0x08059a02 in parse_option (optctx=0xffffcebc, opt=0xffffd285 "i",
arg=0xffffd287 "audio-switch-z14-2.m2ts", options=0x85b6aa0) at
cmdutils.c:265
#9 0x08059b2c in parse_options (optctx=0xffffcebc, argc=3,
argv=0xffffd014, options=0x85b6aa0,
parse_arg_function=0x8056b5e <opt_output_file>) at cmdutils.c:298
#10 0x08058df9 in main (argc=3, argv=0xffffd014) at ffmpeg.c:4469
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x853a014 to 0x853a054:
0x0853a014 <get_vlc2+52>: inc %ebp
0x0853a015 <get_vlc2+53>: adc %cl,(%edi)
0x0853a017 <get_vlc2+55>: mov $0x244489c0,%esi
0x0853a01c <get_vlc2+60>: add $0x8b,%al
0x0853a01e <get_vlc2+62>: inc %ebp
0x0853a01f <get_vlc2+63>: hlt
0x0853a020 <get_vlc2+64>: mov %eax,(%esp)
0x0853a023 <get_vlc2+67>: call 0x8539d7b <NEG_USR32>
0x0853a028 <get_vlc2+72>: mov %eax,-0x14(%ebp)
0x0853a02b <get_vlc2+75>: mov -0x14(%ebp),%eax
0x0853a02e <get_vlc2+78>: shl $0x2,%eax
0x0853a031 <get_vlc2+81>: add 0xc(%ebp),%eax
0x0853a034 <get_vlc2+84>: movzwl (%eax),%eax
0x0853a037 <get_vlc2+87>: cwtl
0x0853a038 <get_vlc2+88>: mov %eax,-0x4(%ebp)
0x0853a03b <get_vlc2+91>: mov -0x14(%ebp),%eax
0x0853a03e <get_vlc2+94>: shl $0x2,%eax
0x0853a041 <get_vlc2+97>: add 0xc(%ebp),%eax
0x0853a044 <get_vlc2+100>: movzwl 0x2(%eax),%eax
0x0853a048 <get_vlc2+104>: cwtl
0x0853a049 <get_vlc2+105>: mov %eax,-0x10(%ebp)
0x0853a04c <get_vlc2+108>: cmpl $0x1,0x14(%ebp)
0x0853a050 <get_vlc2+112>: jle 0x853a14c <get_vlc2+364>
End of assembler dump.
(gdb) info registers
eax 0x8 8
ecx 0xfffffff9 -7
edx 0xfffffff9 -7
ebx 0x21 33
esp 0xffffc7f0 0xffffc7f0
ebp 0xffffc818 0xffffc818
esi 0x0 0
edi 0x8ca1de0 147463648
eip 0x853a034 0x853a034 <get_vlc2+84>
eflags 0x210202 [ IF RF ID ]
cs 0x23 35
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x0 0
gs 0x63 99
}}}
--
Ticket URL: <https://avcodec.org/trac/ffmpeg/ticket/456>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list