[FFmpeg-trac] #6379(avcodec:new): vaapi_encode_check_config invalid free

FFmpeg trac at avcodec.org
Mon May 8 21:52:46 EEST 2017


#6379: vaapi_encode_check_config invalid free
----------------------------------+----------------------------------
             Reporter:  serafean  |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  avcodec   |                  Version:  3.2.4
             Keywords:            |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+----------------------------------
 Invalid free in vaapi_encode_check_config ( vaapi_encode_config_attributes
 in 3.3 branch - manually checked source code )
 How to reproduce:

 {{{
 % MALLOC_CHECK_=2 ffmpeg -loglevel debug -hwaccel vaapi -vaapi_device
 /dev/dri/renderD128 -i Elephants_Dream_HD.avi -vf format=nv12,hwupload
 -map 0:0 -map 0:1 -y -f matroska -bf 0 -c:v h264_vaapi ~/test.mkv
 3.2.4
 built on Gentoo
 }}}

 {{{
 (gdb) bt
 #0  0x00007f0fbeb1eeb8 in __GI_raise (sig=sig at entry=6) at
 ../sysdeps/unix/sysv/linux/raise.c:54
 #1  0x00007f0fbeb2044a in __GI_abort () at abort.c:89
 #2  0x00007f0fbeb63890 in malloc_printerr (action=<optimized out>,
 str=0x7f0fbec55c27 "free(): invalid pointer", ptr=<optimized out>,
     ar_ptr=<optimized out>) at malloc.c:5008
 #3  0x00007f0fc01e88b2 in vaapi_encode_check_config (avctx=0x55e6562a3620)
 at src/libavcodec/vaapi_encode.c:1024
 #4  ff_vaapi_encode_init (avctx=0x55e6562a3620, type=<optimized out>) at
 src/libavcodec/vaapi_encode.c:1076
 #5  0x00007f0fc06353f0 in avcodec_open2 (avctx=0x55e6562a3620,
 codec=0x7f0fc1043cc0 <ff_h264_vaapi_encoder>, options=0x55e65624f888)
     at src/libavcodec/utils.c:1608
 #6  0x000055e655ab58ca in init_output_stream (error_len=1024,
 error=0x7ffde9fa30e0 "", ost=0x55e65624f740) at src/ffmpeg.c:3024
 #7  transcode_init () at src/ffmpeg.c:3482
 #8  0x000055e655a98352 in transcode () at src/ffmpeg.c:4358
 #9  main (argc=23, argv=0x7ffde9fa3a48) at src/ffmpeg.c:4592
 }}}

 The issue is that every "goto fail" tries to free both "profiles" and
 "entrypoints", when entrypoints might not even be allocated yet.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6379>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list