#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 _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://avcodec.org/mailman/listinfo/ffmpeg-trac