[FFmpeg-trac] #1212(avcodec:open): Invalid memory access with lead h263 and lowres (was: ffplay: crash with lead h263 and lowres)

FFmpeg trac at avcodec.org
Sat Jun 2 20:59:55 CEST 2012


#1212: Invalid memory access with lead h263 and lowres
-------------------------------------+-----------------------------------
             Reporter:  ami_stuff    |                    Owner:
                 Type:  defect       |                   Status:  open
             Priority:  important    |                Component:  avcodec
              Version:  git-master   |               Resolution:
             Keywords:  lowres h263  |               Blocked By:
             Blocking:               |  Reproduced by developer:  1
Analyzed by developer:  0            |
-------------------------------------+-----------------------------------
Changes (by cehoyos):

 * status:  new => open
 * reproduced:  0 => 1
 * component:  undetermined => avcodec
 * priority:  normal => important
 * version:  unspecified => git-master


Comment:

 {{{
 $ valgrind ffmpeg_g -lowres 2 -i lead_h263_ehc.avi -f null -
 ==8022== Memcheck, a memory error detector.
 ==8022== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
 ==8022== Using LibVEX rev 1732, a library for dynamic binary translation.
 ==8022== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
 ==8022== Using valgrind-3.2.3, a dynamic binary instrumentation framework.
 ==8022== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
 ==8022== For more details, rerun with: -v
 ==8022==
 ffmpeg version N-41239-g1bf22c3 Copyright (c) 2000-2012 the FFmpeg
 developers
   built on Jun  2 2012 20:03:27 with gcc 4.3.2
   configuration: --cc=/usr/local/gcc-4.3.2/bin/gcc --enable-gpl --enable-
 libopenjpeg --enable-libvorbis --enable-libspeex --enable-libmp3lame
 --enable-libtheora --extra-ldflags=-lm --enable-libvpx --enable-libxavs
   libavutil      51. 56.100 / 51. 56.100
   libavcodec     54. 23.100 / 54. 23.100
   libavformat    54.  6.101 / 54.  6.101
   libavdevice    54.  0.100 / 54.  0.100
   libavfilter     2. 77.100 /  2. 77.100
   libswscale      2.  1.100 /  2.  1.100
   libswresample   0. 15.100 /  0. 15.100
   libpostproc    52.  0.100 / 52.  0.100
 Input #0, avi, from 'lead_h263_ehc.avi':
   Duration: 00:00:03.00, start: 0.000000, bitrate: 143 kb/s
     Stream #0:0: Video: h263 (L263 / 0x3336324C), yuv420p, 180x120, 1 tbr,
 1 tbn, 1 tbc
 [buffer @ 0x46872c0] w:180 h:120 pixfmt:yuv420p tb:1/1 sar:0/1
 sws_param:flags=2
 [buffersink @ 0x4687ea0] No opaque field provided
 Output #0, null, to 'pipe:':
   Metadata:
     encoder         : Lavf54.6.101
     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 180x120,
 q=2-31, 200 kb/s, 90k tbn, 1 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (h263 -> rawvideo)
 Press [q] to stop, [?] for help
 ==8022== Invalid read of size 4
 ==8022==    at 0x861D0DE: h263_h_loop_filter_mmx (dsputil_mmx.h:99)
 ==8022==  Address 0x47E613E is 137,374 bytes inside a block of size
 137,376 alloc'd
 ==8022==    at 0x4021A50: memalign (in
 /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
 ==8022==    by 0x4021AAA: posix_memalign (in
 /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
 ==8022==    by 0x87F167F: av_mallocz (mem.c:95)
 ==8022==
 ==8022== Invalid write of size 4
 ==8022==    at 0x861D272: h263_h_loop_filter_mmx (dsputil_mmx.c:747)
 ==8022==  Address 0x47E613E is 137,374 bytes inside a block of size
 137,376 alloc'd
 ==8022==    at 0x4021A50: memalign (in
 /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
 ==8022==    by 0x4021AAA: posix_memalign (in
 /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
 ==8022==    by 0x87F167F: av_mallocz (mem.c:95)
 ==8022==
 ==8022== Invalid read of size 4
 ==8022==    at 0x861D11B: h263_h_loop_filter_mmx (dsputil_mmx.h:99)
 ==8022==  Address 0x47EAC60 is not stack'd, malloc'd or (recently) free'd
 ==8022==
 ==8022== Invalid write of size 4
 ==8022==    at 0x861D281: h263_h_loop_filter_mmx (dsputil_mmx.c:747)
 ==8022==  Address 0x47EAC60 is not stack'd, malloc'd or (recently) free'd
 ==8022==
 ==8022== Invalid read of size 4
 ==8022==    at 0x861D118: h263_h_loop_filter_mmx (dsputil_mmx.h:99)
 ==8022==  Address 0x47EAC1E is 19,038 bytes inside a block of size 19,040
 alloc'd
 ==8022==    at 0x4021A50: memalign (in
 /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
 ==8022==    by 0x4021AAA: posix_memalign (in
 /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
 ==8022==    by 0x87F15CF: av_malloc (mem.c:95)
 ==8022==
 ==8022== Invalid write of size 4
 ==8022==    at 0x861D27D: h263_h_loop_filter_mmx (dsputil_mmx.c:747)
 ==8022==  Address 0x47EAC1E is 19,038 bytes inside a block of size 19,040
 alloc'd
 ==8022==    at 0x4021A50: memalign (in
 /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
 ==8022==    by 0x4021AAA: posix_memalign (in
 /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
 ==8022==    by 0x87F15CF: av_malloc (mem.c:95)
 Input stream #0:0 frame changed from size:180x120 fmt:yuv420p to
 size:180x60 fmt:yuv420p
 [buffer @ 0x47f0f00] w:180 h:60 pixfmt:yuv420p tb:1/1 sar:12/11
 sws_param:flags=2
 [buffersink @ 0x47f1300] No opaque field provided
 [scale @ 0x4737fc0] w:180 h:60 fmt:yuv420p sar:12/11 -> w:180 h:120
 fmt:yuv420p sar:24/11 flags:0x4
 [null @ 0x4677440] Encoder did not produce proper pts, making some up.
 frame=    3 fps=0.0 q=0.0 Lsize=       0kB time=00:00:03.00 bitrate=
 0.0kbits/s dup=1 drop=0
 video:0kB audio:0kB global headers:0kB muxing overhead nan%
 Output file is empty, nothing was encoded (check -ss / -t / -frames
 parameters if used)
 ==8022==
 ==8022== ERROR SUMMARY: 242 errors from 6 contexts (suppressed: 3 from 1)
 ==8022== malloc/free: in use at exit: 0 bytes in 0 blocks.
 ==8022== malloc/free: 1,758 allocs, 1,758 frees, 2,330,409 bytes
 allocated.
 ==8022== For counts of detected errors, rerun with: -v
 ==8022== All heap blocks were freed -- no leaks are possible.
 }}}

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


More information about the FFmpeg-trac mailing list