[FFmpeg-trac] #2984(undetermined:new): escape124: deadlock with fuzzed file

FFmpeg trac at avcodec.org
Sun Sep 22 18:38:11 CEST 2013


#2984: escape124: deadlock with fuzzed file
-------------------------------------+-------------------------------------
             Reporter:  ami_stuff    |                    Owner:
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
              Version:  unspecified  |  undetermined
             Keywords:               |               Resolution:
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------
Description changed by ami_stuff:

Old description:

> (I coundn't find any more crashes in decoders, however I found some
> deadlocks)
>
> (((
> (gdb) r -threads 1 -i ./deadlock.rpl -an -f null -
> The program being debugged has been started already.
> Start it from the beginning? (y or n) y
>
> Starting program: /media/sdb1/ffmpeg-HEAD-93439e8/ffmpeg_g -threads 1 -i
> ./deadlock.rpl -an -f null -
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
> ffmpeg version 2.0-93439e8 Copyright (c) 2000-2013 the FFmpeg developers
>   built on Sep 18 2013 23:23:15 with gcc 4.7 (Debian 4.7.2-5)
>   configuration: --disable-yasm --enable-gpl --disable-ffprobe --disable-
> ffserver
>   libavutil      52. 44.100 / 52. 44.100
>   libavcodec     55. 31.101 / 55. 31.101
>   libavformat    55. 18.100 / 55. 18.100
>   libavdevice    55.  3.100 / 55.  3.100
>   libavfilter     3. 86.101 /  3. 86.101
>   libswscale      2.  5.100 /  2.  5.100
>   libswresample   0. 17.103 /  0. 17.103
>   libpostproc    52.  3.100 / 52.  3.100
> [rpl @ 0x9114e40] Estimating duration from bitrate, this may be
> inaccurate
> Guessed Channel Layout for  Input Stream #0.1 : stereo
> Input #0, rpl, from './deadlock.rpl':
>   Metadata:
>     title           : c:\avtest\logo_hq_124.rpl
>     copyright       : Copyright (c) 1996 Eidos plc.  All rights reserved.
>     author          : ESCAPE 1.0
>   Duration: 00:00:12.04, start: 0.000000, bitrate: 705 kb/s
>     Stream #0:0: Video: escape124 ([124][0][0][0] / 0x007C), rgb555le,
> 320x240, 25 fps, 25 tbr, 25 tbn, 25 tbc
>     Stream #0:1: Audio: pcm_u8 (e[0][0][0] / 0x0065), 44100 Hz, stereo,
> u8, 705 kb/s
> [New Thread 0xb7df8b70 (LWP 2845)]
> [New Thread 0xb75f8b70 (LWP 2846)]
> [New Thread 0xb6df8b70 (LWP 2847)]
> [New Thread 0xb65f8b70 (LWP 2848)]
> [New Thread 0xb5df8b70 (LWP 2849)]
> [New Thread 0xb55f8b70 (LWP 2850)]
> [New Thread 0xb4df8b70 (LWP 2851)]
> [New Thread 0xb45f8b70 (LWP 2852)]
> [New Thread 0xb3df8b70 (LWP 2853)]
> Output #0, null, to 'pipe:':
>   Metadata:
>     title           : c:\avtest\logo_hq_124.rpl
>     copyright       : Copyright (c) 1996 Eidos plc.  All rights reserved.
>     author          : ESCAPE 1.0
>     encoder         : Lavf55.18.100
>     Stream #0:0: Video: rawvideo (RGB[15] / 0xF424752), rgb555le,
> 320x240, q=2-31, 200 kb/s, 90k tbn, 25 tbc
> Stream mapping:
>   Stream #0:0 -> #0:0 (escape124 -> rawvideo)
> Press [q] to stop, [?] for help
> [null @ 0x91254e0] Encoder did not produce proper pts, making some up.
>
> Program received signal SIGINT, Interrupt.
> escape124_decode_frame (avctx=0x91158c0, data=0x9127560,
> got_frame=0xbffff4e4,
>     avpkt=0xbffff288) at libavcodec/escape124.c:307
> 307                         if (mask & mask_matrix[i]) {
> (gdb) bt
> #0  escape124_decode_frame (avctx=0x91158c0, data=0x9127560,
>     got_frame=0xbffff4e4, avpkt=0xbffff288) at libavcodec/escape124.c:307
> #1  0x0867a58e in avcodec_decode_video2 (avctx=0x91158c0,
>     picture=picture at entry=0x9127560,
>     got_picture_ptr=got_picture_ptr at entry=0xbffff4e4,
>     avpkt=avpkt at entry=0xbffff730) at libavcodec/utils.c:1995
> #2  0x080b394d in decode_video (ist=ist at entry=0x9148ee0,
>     pkt=pkt at entry=0xbffff730, got_output=got_output at entry=0xbffff4e4)
>     at ffmpeg.c:1668
> #3  0x080b786a in output_packet (pkt=0xbffff6c8, ist=0x9148ee0)
>     at ffmpeg.c:1866
> #4  process_input (file_index=2) at ffmpeg.c:3089
> #5  0x080a3043 in transcode_step () at ffmpeg.c:3185
> #6  transcode () at ffmpeg.c:3237
> #7  main (argc=<optimized out>, argv=<optimized out>) at ffmpeg.c:3415
> (gdb)
> }}}

New description:

 (I coundn't find any more crashes in decoders, however I found some
 deadlocks)

 {{{
 (gdb) r -threads 1 -i ./deadlock.rpl -an -f null -
 The program being debugged has been started already.
 Start it from the beginning? (y or n) y

 Starting program: /media/sdb1/ffmpeg-HEAD-93439e8/ffmpeg_g -threads 1 -i
 ./deadlock.rpl -an -f null -
 [Thread debugging using libthread_db enabled]
 Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
 ffmpeg version 2.0-93439e8 Copyright (c) 2000-2013 the FFmpeg developers
   built on Sep 18 2013 23:23:15 with gcc 4.7 (Debian 4.7.2-5)
   configuration: --disable-yasm --enable-gpl --disable-ffprobe --disable-
 ffserver
   libavutil      52. 44.100 / 52. 44.100
   libavcodec     55. 31.101 / 55. 31.101
   libavformat    55. 18.100 / 55. 18.100
   libavdevice    55.  3.100 / 55.  3.100
   libavfilter     3. 86.101 /  3. 86.101
   libswscale      2.  5.100 /  2.  5.100
   libswresample   0. 17.103 /  0. 17.103
   libpostproc    52.  3.100 / 52.  3.100
 [rpl @ 0x9114e40] Estimating duration from bitrate, this may be inaccurate
 Guessed Channel Layout for  Input Stream #0.1 : stereo
 Input #0, rpl, from './deadlock.rpl':
   Metadata:
     title           : c:\avtest\logo_hq_124.rpl
     copyright       : Copyright (c) 1996 Eidos plc.  All rights reserved.
     author          : ESCAPE 1.0
   Duration: 00:00:12.04, start: 0.000000, bitrate: 705 kb/s
     Stream #0:0: Video: escape124 ([124][0][0][0] / 0x007C), rgb555le,
 320x240, 25 fps, 25 tbr, 25 tbn, 25 tbc
     Stream #0:1: Audio: pcm_u8 (e[0][0][0] / 0x0065), 44100 Hz, stereo,
 u8, 705 kb/s
 [New Thread 0xb7df8b70 (LWP 2845)]
 [New Thread 0xb75f8b70 (LWP 2846)]
 [New Thread 0xb6df8b70 (LWP 2847)]
 [New Thread 0xb65f8b70 (LWP 2848)]
 [New Thread 0xb5df8b70 (LWP 2849)]
 [New Thread 0xb55f8b70 (LWP 2850)]
 [New Thread 0xb4df8b70 (LWP 2851)]
 [New Thread 0xb45f8b70 (LWP 2852)]
 [New Thread 0xb3df8b70 (LWP 2853)]
 Output #0, null, to 'pipe:':
   Metadata:
     title           : c:\avtest\logo_hq_124.rpl
     copyright       : Copyright (c) 1996 Eidos plc.  All rights reserved.
     author          : ESCAPE 1.0
     encoder         : Lavf55.18.100
     Stream #0:0: Video: rawvideo (RGB[15] / 0xF424752), rgb555le, 320x240,
 q=2-31, 200 kb/s, 90k tbn, 25 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (escape124 -> rawvideo)
 Press [q] to stop, [?] for help
 [null @ 0x91254e0] Encoder did not produce proper pts, making some up.

 Program received signal SIGINT, Interrupt.
 escape124_decode_frame (avctx=0x91158c0, data=0x9127560,
 got_frame=0xbffff4e4,
     avpkt=0xbffff288) at libavcodec/escape124.c:307
 307                         if (mask & mask_matrix[i]) {
 (gdb) bt
 #0  escape124_decode_frame (avctx=0x91158c0, data=0x9127560,
     got_frame=0xbffff4e4, avpkt=0xbffff288) at libavcodec/escape124.c:307
 #1  0x0867a58e in avcodec_decode_video2 (avctx=0x91158c0,
     picture=picture at entry=0x9127560,
     got_picture_ptr=got_picture_ptr at entry=0xbffff4e4,
     avpkt=avpkt at entry=0xbffff730) at libavcodec/utils.c:1995
 #2  0x080b394d in decode_video (ist=ist at entry=0x9148ee0,
     pkt=pkt at entry=0xbffff730, got_output=got_output at entry=0xbffff4e4)
     at ffmpeg.c:1668
 #3  0x080b786a in output_packet (pkt=0xbffff6c8, ist=0x9148ee0)
     at ffmpeg.c:1866
 #4  process_input (file_index=2) at ffmpeg.c:3089
 #5  0x080a3043 in transcode_step () at ffmpeg.c:3185
 #6  transcode () at ffmpeg.c:3237
 #7  main (argc=<optimized out>, argv=<optimized out>) at ffmpeg.c:3415
 (gdb)
 }}}

--

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2984#comment:1>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list