Package: libavcodec53
Version: 6:0.8.4-1
Severity: important
Tags: patch
Hi,
In some situations, transcoding a wmav2 file can lead to a infinite loop
(which is leaking a lot of memory).
A patch has been merged in ffmpeg codebase, but this is still present in
libav. (3cb64e327a9861f2c8fff0b3850fcd5d14acdbe3 on ffmpeg git
repository).
Please find attached the backport of the patch.
Cheers
Laurent Bigonville
PS: Bug on the ffmpeg track: http://avcodec.org/trac/ffmpeg/ticket/286
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.6-trunk-amd64 (SMP w/8 CPU cores)
Locale: LANG=fr_BE.utf8, LC_CTYPE=fr_BE.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages libavcodec53 depends on:
ii libavutil51 6:0.8.4-1
ii libc6 2.13-37
ii libdirac-encoder0 1.0.2-6
ii libgsm1 1.0.13-4
ii libmp3lame0 3.99.5+repack1-3
ii libopenjpeg2 1.3+dfsg-4.6
ii libschroedinger-1.0-0 1.0.11-2
ii libspeex1 1.2~rc1-7
ii libtheora0 1.1.1+dfsg.1-3.1
ii libva1 1.0.15-4
ii libvorbis0a 1.3.2-1.3
ii libvorbisenc2 1.3.2-1.3
ii libvpx1 1.1.0-1
ii libx264-123 2:0.123.2189+git35cf912-1
ii libxvidcore4 2:1.3.2-9
ii multiarch-support 2.13-37
ii zlib1g 1:1.2.7.dfsg-13
libavcodec53 recommends no packages.
libavcodec53 suggests no packages.
-- no debconf information
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -823,7 +823,8 @@ static int wma_decode_superframe(AVCodec
buf_size, s->block_align);
return AVERROR_INVALIDDATA;
}
- buf_size = s->block_align;
+ if(s->block_align)
+ buf_size = s->block_align;
init_get_bits(&s->gb, buf, buf_size*8);
@@ -921,7 +922,7 @@ static int wma_decode_superframe(AVCodec
*got_frame_ptr = 1;
*(AVFrame *)data = s->frame;
- return s->block_align;
+ return buf_size;
fail:
/* when error, we reset the bit reservoir */
s->last_superframe_len = 0;