From fbdc98c758d5261d3328b53e29abeac033253358 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 22 Oct 2013 17:29:40 +0200 Subject: [PATCH] avcodec/metasound_data: Fix inconsistency in tables Fixes out of array read This issue can be reproduced with: Lucky.asf teuflisch.asf from http://samples.ffmpeg.org/A-codecs/VoxWare/ as well as other samples fcb16m has 320 elements but the code before the patch can address a table of 384 elements in its place. I dont know if theres some elements missing, or its maybe the wrong table, or if the parameters affecting the table size are wrong, or if theres something else wrong. if someone reading this has easy access to some reference. (binary with the tables in it, spec, whatever, please contact us) This solution fixes the inconsistency by padding the table with zeros, this variant was suggested by Vitor Sessak. And ensures that nothing currently working breaks. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer --- libavcodec/metasound_data.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavcodec/metasound_data.c b/libavcodec/metasound_data.c index 34654993c0..c6a8121dd7 100644 --- a/libavcodec/metasound_data.c +++ b/libavcodec/metasound_data.c @@ -3741,6 +3741,14 @@ static const int16_t fcb16m[] = { -688, -209, 915, 622, -1038, -474, -343, -91, -173, -104, 255, 96, 1547, 773, -625, 2272, -90, -509, -527, -247, -147, -234, -45, 166, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, }; static const int16_t fcb44sl[] = {