[FFmpeg-trac] #569(undetermined:new): segfault trying to identify flv with no audio channels
FFmpeg
trac at avcodec.org
Mon Oct 17 22:28:35 CEST 2011
#569: segfault trying to identify flv with no audio channels
-------------------------------------+-------------------------------------
Reporter: andrewr | Type: defect
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
We have some flv files with 1 video and 0 audio channels which immediately
segfault ffmpeg when it tries to identify them ("ffmpeg -i filename.flv").
This happens with latest version bd4ebbbbed47761df65dd574dce6d3c56d29e2e7
from Oct 14 2011.
This used to work. For example here is the flv file working with an old
build (I can't provide flv file source in question, sorry.):
ffmpeg -i ~andrewr/local/bad-videos/flv-segfault-
identify/251336914908174.flv
FFmpeg version ffmpeg-r19369, Copyright (c) 2000-2009 Fabrice Bellard, et
al.
configuration: --enable-version3 --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libgsm --enable-libopenjpeg --disable-devices
--disable-ffserver --disable-ffplay --enable-libxvid --enable-libx264
--enable-pthreads --disable-shared --enable-nonfree --enable-static
--enable-libfaac --enable-gpl --enable-libmp3lame --enable-libtheora
--enable-libvorbis --enable-libschroedinger --enable-libspeex
libavutil 50. 3. 0 / 50. 3. 0
libavcodec 52.32. 0 / 52.32. 0
libavformat 52.36. 0 / 52.36. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0. 7. 1 / 0. 7. 1
built on Jul 7 2009 17:57:47, gcc: 4.0.1 20050727 (Red Hat 4.0.1-5)
[flv @ 0x1107370]invalid stream
Seems stream 1 codec frame rate differs from container frame rate: inf
(1/0) -> 24.00 (24/1)
FPS=24.00
Input #0, flv, from '/home/andrewr/local/bad-videos/flv-segfault-
identify/251336914908174.flv':
Duration: 00:00:39.79, start: 0.000000, bitrate: N/A
DURATION=39.79
AUDIO_CODEC=0x0000
AUDIO_SAMPLE_FMT=s16
AUDIO_CHANNELS=0
STREAM_ID=0.0
Stream #0.0: Audio: 0x0000, 0 channels, s16
VIDEO_CODEC=flv
PIX_FMT=yuv420p
WIDTH=512
HEIGHT=272
STREAM_ID=0.1
Stream #0.1: Video: flv, yuv420p, 512x272, 24 tbr, 1k tbn
At least one output file must be specified
Here's the debug information requested from ffmpeg_g:
Program received signal SIGSEGV, Segmentation fault.
0x00007fa3e5af16f8 in ff_add_index_entry ()
from /tmp/binary-dist-ffmpeg-
6e6306c.us7i8a/gcc-4.6.0-glibc-2.13/libavformat.so.53
(gdb) bt
#0 0x00007fa3e5af16f8 in ff_add_index_entry ()
from /tmp/binary-dist-ffmpeg-
6e6306c.us7i8a/gcc-4.6.0-glibc-2.13/libavformat.so.53
#1 0x00007fa3e5af1896 in av_add_index_entry ()
from /tmp/binary-dist-ffmpeg-
6e6306c.us7i8a/gcc-4.6.0-glibc-2.13/libavformat.so.53
#2 0x00007fa3e5a7e356 in ?? ()
from /tmp/binary-dist-ffmpeg-
6e6306c.us7i8a/gcc-4.6.0-glibc-2.13/libavformat.so.53
#3 0x00007fa3e5a7df80 in ?? ()
from /tmp/binary-dist-ffmpeg-
6e6306c.us7i8a/gcc-4.6.0-glibc-2.13/libavformat.so.53
#4 0x00007fa3e5a7e933 in ?? ()
from /tmp/binary-dist-ffmpeg-
6e6306c.us7i8a/gcc-4.6.0-glibc-2.13/libavformat.so.53
#5 0x00007fa3e5af0cd7 in av_read_packet ()
from /tmp/binary-dist-ffmpeg-
6e6306c.us7i8a/gcc-4.6.0-glibc-2.13/libavformat.so.53
#6 0x00007fa3e5af1927 in ?? ()
from /tmp/binary-dist-ffmpeg-
6e6306c.us7i8a/gcc-4.6.0-glibc-2.13/libavformat.so.53
#7 0x00007fa3e5af31b9 in avformat_find_stream_info ()
from /tmp/binary-dist-ffmpeg-
6e6306c.us7i8a/gcc-4.6.0-glibc-2.13/libavformat.so.53
#8 0x000000000040e0c5 in opt_input_file (o=0x7fffc0ee2540,
opt=<value optimized out>, filename=<value optimized out>)
at ffmpeg.c:3137
#9 0x0000000000413257 in parse_option (optctx=0x7fffc0ee2540,
opt=0x7fffc0ee481a "i",
arg=0x7fffc0ee481c "/home/andrewr/local/bad-videos/flv-segfault-
identify/251336914908174.flv", options=0x619060) at cmdutils.c:275
#10 0x00000000004133e5 in parse_options (optctx=0x7fffc0ee2540, argc=3,
argv=0x7fffc0ee28a8, options=0x619060,
parse_arg_function=0x40f420 <opt_output_file>) at cmdutils.c:308
#11 0x0000000000404bf0 in main (argc=3, argv=0x7fffc0ee28a8) at
ffmpeg.c:4369
(gdb) disass $pc-32,$pc+32
Dump of assembler code from 0x7fa3e5af16d8 to 0x7fa3e5af1718:
0x00007fa3e5af16d8 <ff_add_index_entry+8>: mov %rbp,-0x28(%rsp)
0x00007fa3e5af16dd <ff_add_index_entry+13>: mov %r12,-0x20(%rsp)
0x00007fa3e5af16e2 <ff_add_index_entry+18>: mov %r13,-0x18(%rsp)
0x00007fa3e5af16e7 <ff_add_index_entry+23>: mov %rdi,%rbp
0x00007fa3e5af16ea <ff_add_index_entry+26>: mov %r15,-0x8(%rsp)
0x00007fa3e5af16ef <ff_add_index_entry+31>: mov %r14,-0x10(%rsp)
0x00007fa3e5af16f4 <ff_add_index_entry+36>: sub $0x48,%rsp
=> 0x00007fa3e5af16f8 <ff_add_index_entry+40>: mov (%rbx),%eax
0x00007fa3e5af16fa <ff_add_index_entry+42>: mov %rdx,%rsi
0x00007fa3e5af16fd <ff_add_index_entry+45>: mov %rcx,%r13
0x00007fa3e5af1700 <ff_add_index_entry+48>: mov %r8,%r12
0x00007fa3e5af1703 <ff_add_index_entry+51>: mov %r9d,%r15d
0x00007fa3e5af1706 <ff_add_index_entry+54>: add $0x1,%eax
0x00007fa3e5af1709 <ff_add_index_entry+57>: cmp $0xaaaaaa9,%eax
0x00007fa3e5af170e <ff_add_index_entry+62>: ja 0x7fa3e5af1850
<ff_add_index_entry+384>
0x00007fa3e5af1714 <ff_add_index_entry+68>: cltq
0x00007fa3e5af1716 <ff_add_index_entry+70>: mov (%rdi),%rdi
End of assembler dump.
(gdb) info all-registers
rax 0xe63 3683
rbx 0x98 152
rcx 0xe63 3683
rdx 0x9c 156
rsi 0x98 152
rdi 0x90 144
rbp 0x90 0x90
rsp 0x7fffc0ee16e0 0x7fffc0ee16e0
r8 0x0 0
r9 0x0 0
r10 0x0 0
r11 0x0 0
r12 0x47d 1149
r13 0x1 1
r14 0x3 3
r15 0x7fffc0ee1a80 140736430217856
rip 0x7fa3e5af16f8 0x7fa3e5af16f8 <ff_add_index_entry+40>
eflags 0x10202 [ IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
st0 0 (raw 0x00000000000000000000)
st1 0 (raw 0x00000000000000000000)
st2 0 (raw 0x00000000000000000000)
st3 0 (raw 0x00000000000000000000)
st4 0 (raw 0x00000000000000000000)
st5 0 (raw 0x00000000000000000000)
st6 0 (raw 0x00000000000000000000)
st7 0 (raw 0x00000000000000000000)
fctrl 0x37f 895
fstat 0x0 0
ftag 0xffff 65535
fiseg 0x0 0
fioff 0x0 0
foseg 0x0 0
fooff 0x0 0
fop 0x0 0
xmm0 {v4_float = {0x0, 0x3, 0x0, 0x0}, v2_double = {0x26, 0x0},
v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x43, 0x40, 0x0, 0x0, 0x0,
0x0,
0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x6000, 0x4043, 0x0, 0x0,
0x0,
0x0}, v4_int32 = {0x0, 0x40436000, 0x0, 0x0}, v2_int64 = {
0x4043600000000000, 0x0}, uint128 =
0x00000000000000004043600000000000}
xmm1 {v4_float = {0x0, 0x3, 0x0, 0x0}, v2_double = {0x26, 0x0},
v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x43, 0x40, 0x0, 0x0, 0x0,
0x0,
0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x6000, 0x4043, 0x0, 0x0,
0x0,
0x0}, v4_int32 = {0x0, 0x40436000, 0x0, 0x0}, v2_int64 = {
0x4043600000000000, 0x0}, uint128 =
0x00000000000000004043600000000000}
xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
0x0},
uint128 = 0x00000000000000000000000000000000}
xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0xff, 0x0, 0x0}, v8_int16 = {0x0, 0xff, 0x0, 0x0, 0x0, 0x0,
0xff00,
0x0}, v4_int32 = {0xff0000, 0x0, 0x0, 0xff00}, v2_int64 = {0xff0000,
0xff0000000000}, uint128 = 0x0000ff00000000000000000000ff0000}
xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {
0x8000000000000000, 0x0}, v16_int8 = {0x65, 0x73, 0x74, 0x5f, 0x73,
0x61,
0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x66, 0x6d, 0x74, 0x0, 0x38}, v8_int16 =
{
0x7365, 0x5f74, 0x6173, 0x706d, 0x656c, 0x665f, 0x746d, 0x3800},
v4_int32 = {0x5f747365, 0x706d6173, 0x665f656c, 0x3800746d}, v2_int64 =
{
0x706d61735f747365, 0x3800746d665f656c},
uint128 = 0x3800746d665f656c706d61735f747365}
xmm5 {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x1, 0x0},
v16_int8 = {0x6d, 0x7d, 0xbf, 0xbb, 0x27, 0xaf, 0xf5, 0x3f, 0x0, 0x0,
0x0,
0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x7d6d, 0xbbbf, 0xaf27, 0x3ff5,
0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xbbbf7d6d, 0x3ff5af27, 0x0, 0x0},
v2_int64 = {0x3ff5af27bbbf7d6d, 0x0},
uint128 = 0x00000000000000003ff5af27bbbf7d6d}
xmm6 {v4_float = {0x0, 0xfffffffd, 0x0, 0x0}, v2_double = {
0xffffffffffffffd2, 0x0}, v16_int8 = {0x5b, 0xaa, 0xa2, 0x2a, 0x9e,
0x6,
0x47, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0xaa5b,
0x2aa2, 0x69e, 0xc047, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x2aa2aa5b,
0xc047069e, 0x0, 0x0}, v2_int64 = {0xc047069e2aa2aa5b, 0x0},
uint128 = 0x0000000000000000c047069e2aa2aa5b}
xmm7 {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x1, 0x0},
v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3f, 0x0, 0x0, 0x0,
0x0,
0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x3ff0, 0x0, 0x0, 0x0,
0x0}, v4_int32 = {0x0, 0x3ff00000, 0x0, 0x0}, v2_int64 = {
0x3ff0000000000000, 0x0}, uint128 =
0x00000000000000003ff0000000000000}
xmm8 {v4_float = {0x0, 0xfffffffd, 0x0, 0x0}, v2_double = {
0xffffffffffffffd2, 0x0}, v16_int8 = {0xe0, 0xe6, 0x35, 0x67, 0x9e,
0x6,
0x47, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0xe6e0,
0x6735, 0x69e, 0xc047, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x6735e6e0,
0xc047069e, 0x0, 0x0}, v2_int64 = {0xc047069e6735e6e0, 0x0},
uint128 = 0x0000000000000000c047069e6735e6e0}
xmm9 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x68, 0xc8, 0xbc, 0x3b, 0x0, 0x0, 0x0,
0x0,
0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0xc868, 0x3bbc, 0x0, 0x0,
0x0,
0x0}, v4_int32 = {0x0, 0x3bbcc868, 0x0, 0x0}, v2_int64 = {
0x3bbcc86800000000, 0x0}, uint128 =
0x00000000000000003bbcc86800000000}
xmm10 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x0, 0x46, 0x84, 0x24, 0x59, 0xd6, 0x3e, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x8446, 0x5924, 0x3ed6,
0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x84460000, 0x3ed65924, 0x0, 0x0},
v2_int64 = {0x3ed6592484460000, 0x0},
uint128 = 0x00000000000000003ed6592484460000}
xmm11 {v4_float = {0x9689a800, 0x0, 0x0, 0x0}, v2_double = {0x0,
0x8000000000000000}, v16_int8 = {0x6a, 0xa2, 0x65, 0x50, 0xf2, 0xea,
0x8f, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff}, v8_int16 =
{
0xa26a, 0x5065, 0xeaf2, 0xbd8f, 0xffff, 0xffff, 0xff, 0xffff},
v4_int32 = {0x5065a26a, 0xbd8feaf2, 0xffffffff, 0xffff00ff}, v2_int64 =
{
0xbd8feaf25065a26a, 0xffff00ffffffffff},
uint128 = 0xffff00ffffffffffbd8feaf25065a26a}
xmm12 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc4, 0x3c, 0x0, 0x0, 0x0,
0x0,
0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x3cc4, 0x0, 0x0, 0x0,
0x0}, v4_int32 = {0x0, 0x3cc40000, 0x0, 0x0}, v2_int64 = {
0x3cc4000000000000, 0x0}, uint128 =
0x00000000000000003cc4000000000000}
xmm13 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x59, 0xbc, 0x0, 0x0, 0x0,
0x0,
0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x8000, 0xbc59, 0x0, 0x0,
0x0,
0x0}, v4_int32 = {0x0, 0xbc598000, 0x0, 0x0}, v2_int64 = {
0xbc59800000000000, 0x0}, uint128 =
0x0000000000000000bc59800000000000}
xmm14 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x8e, 0x85, 0x83, 0xe8, 0xf0, 0x24, 0x53, 0x3c, 0x0, 0x0,
0x0,
0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x858e, 0xe883, 0x24f0, 0x3c53,
0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xe883858e, 0x3c5324f0, 0x0, 0x0},
v2_int64 = {0x3c5324f0e883858e, 0x0},
uint128 = 0x00000000000000003c5324f0e883858e}
xmm15 {v4_float = {0x0, 0x3, 0x0, 0x0}, v2_double = {0x2d, 0x0},
v16_int8 = {0xc0, 0x9, 0xf2, 0x16, 0xb5, 0xdf, 0x46, 0x40, 0x0, 0x0,
0x0,
0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x9c0, 0x16f2, 0xdfb5, 0x4046,
0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x16f209c0, 0x4046dfb5, 0x0, 0x0},
v2_int64 = {0x4046dfb516f209c0, 0x0},
uint128 = 0x00000000000000004046dfb516f209c0}
mxcsr 0x1fa2 [ DE PE IM DM ZM OM UM PM ]
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/569>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list