[FFmpeg-trac] #4879(avcodec:open): decoding ffv1 crashes ffmpeg
FFmpeg
trac at avcodec.org
Thu Sep 24 23:52:11 CEST 2015
#4879: decoding ffv1 crashes ffmpeg
-------------------------------------+-------------------------------------
Reporter: dericed | Owner:
Type: defect | Status: open
Priority: important | Component: avcodec
Version: git-master | Resolution:
Keywords: ffv1 crash | Blocked By:
SIGSEGV regression | Reproduced by developer: 1
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Changes (by cehoyos):
* keywords: ffv1 => ffv1 crash SIGSEGV regression
* priority: normal => important
* status: new => open
* reproduced: 0 => 1
Comment:
Regression since 60217b5b9cf713b1eeb7626473eac357cde25673
{{{
(gdb) r -i SXS00455_ffv1_crash.mkv -f null -
Starting program: ffmpeg_g -i SXS00455_ffv1_crash.mkv -f null -
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
ffmpeg version N-75503-g2441842 Copyright (c) 2000-2015 the FFmpeg
developers
built with gcc 4.7 (SUSE Linux)
configuration: --enable-gpl
libavutil 55. 2.100 / 55. 2.100
libavcodec 57. 3.100 / 57. 3.100
libavformat 57. 2.100 / 57. 2.100
libavdevice 57. 0.100 / 57. 0.100
libavfilter 6. 8.100 / 6. 8.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.100 / 2. 0.100
libpostproc 54. 0.100 / 54. 0.100
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, matroska,webm, from 'SXS00455_ffv1_crash.mkv':
Metadata:
MAJOR_BRAND : qt
MINOR_VERSION : 512
COMPATIBLE_BRANDS: qt
ENCODER : Lavf56.40.101
Duration: 00:00:00.30, start: 0.000000, bitrate: 54018 kb/s
Stream #0:0(eng): Video: ffv1 (FFV1 / 0x31564646), yuv422p, 720x486,
SAR 9:10 DAR 4:3, 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc (default)
Metadata:
LANGUAGE : eng
HANDLER_NAME : DataHandler
ENCODER : FFV1 version 3
DURATION : 00:00:00.300000000
Stream #0:1(eng): Audio: pcm_s24le, 48000 Hz, 2 channels, s32 (24
bit), 2304 kb/s (default)
Metadata:
LANGUAGE : eng
HANDLER_NAME : DataHandler
DURATION : 00:00:00.300000000
Output #0, null, to 'pipe:':
Metadata:
MAJOR_BRAND : qt
MINOR_VERSION : 512
COMPATIBLE_BRANDS: qt
encoder : Lavf57.2.100
Stream #0:0(eng): Video: rawvideo (Y42B / 0x42323459), yuv422p,
720x486 [SAR 9:10 DAR 4:3], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97
tbc (default)
Metadata:
LANGUAGE : eng
HANDLER_NAME : DataHandler
DURATION : 00:00:00.300000000
encoder : Lavc57.3.100 rawvideo
Stream #0:1(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16 (24 bit),
1536 kb/s (default)
Metadata:
LANGUAGE : eng
HANDLER_NAME : DataHandler
DURATION : 00:00:00.300000000
encoder : Lavc57.3.100 pcm_s16le
Stream mapping:
Stream #0:0 -> #0:0 (ffv1 (native) -> rawvideo (native))
Stream #0:1 -> #0:1 (pcm_s24le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe54d8700 (LWP 10456)]
read_header (f=0x1fb78a0) at libavcodec/ffv1dec.c:799
799 fs->ac = f->ac;
(gdb) bt
#0 read_header (f=0x1fb78a0) at libavcodec/ffv1dec.c:799
#1 decode_frame (avctx=0x1fb7100, data=0x1fb75e0, got_frame=0x1ca6608,
avpkt=0x1ca65b0)
at libavcodec/ffv1dec.c:904
#2 0x0000000000a4f2ad in frame_worker_thread (arg=0x1ca64b0)
at libavcodec/pthread_frame.c:154
#3 0x00007ffff626ee0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007ffff52592cd in clone () from /lib64/libc.so.6
(gdb) disass $pc-32,$pc+32
Dump of assembler code from 0x7402d9 to 0x740319:
0x00000000007402d9 <decode_frame+2137>: rex
0x00000000007402da <decode_frame+2138>: lea 0x3bc0(%rbx),%rcx
0x00000000007402e1 <decode_frame+2145>: mov %rcx,%r13
0x00000000007402e4 <decode_frame+2148>: mov 0x40(%rsp),%rsi
0x00000000007402e9 <decode_frame+2153>: mov 0x1334(%rbx),%eax
0x00000000007402ef <decode_frame+2159>: cmpl $0x2,0x12c0(%rbx)
0x00000000007402f6 <decode_frame+2166>: mov (%rsi),%r14
=> 0x00000000007402f9 <decode_frame+2169>: mov %eax,0x1334(%r14)
0x0000000000740300 <decode_frame+2176>: mov 0x9744(%rbx),%eax
0x0000000000740306 <decode_frame+2182>: movl $0x0,0x9738(%r14)
0x0000000000740311 <decode_frame+2193>: mov %eax,0x9744(%r14)
0x0000000000740318 <decode_frame+2200>: je 0x740aaf
<decode_frame+4143>
End of assembler dump.
(gdb) info register
rax 0x0 0
rbx 0x1fb78a0 33257632
rcx 0x0 0
rdx 0x4 4
rsi 0x1fc1010 33296400
rdi 0x202f5c0 33748416
rbp 0x202ebc0 0x202ebc0
rsp 0x7fffe54d7d00 0x7fffe54d7d00
r8 0x21ec960 35572064
r9 0x100 256
r10 0x2002261 33563233
r11 0xccccccc 214748364
r12 0xffffffff 4294967295
r13 0x1fbb460 33272928
r14 0x0 0
r15 0x2 2
rip 0x7402f9 0x7402f9 <decode_frame+2169>
eflags 0x10202 [ IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/4879#comment:3>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list