From: Anton Khirnov Date: Fri, 15 Nov 2013 09:15:24 +0000 (+0100) Subject: matroskadec: pad EBML_BIN data. X-Git-Tag: v10_alpha1~206 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=30be1ea33e5525266ad871bed60b1893a53caeaf;p=platform%2Fupstream%2Flibav.git matroskadec: pad EBML_BIN data. It might be passed to code requiring padding, such as lzo decompression. Fixes invalid reads. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org --- diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index f798342..764dbf8 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -734,9 +734,11 @@ static int ebml_read_ascii(AVIOContext *pb, int size, char **str) static int ebml_read_binary(AVIOContext *pb, int length, EbmlBin *bin) { av_free(bin->data); - if (!(bin->data = av_malloc(length))) + if (!(bin->data = av_malloc(length + FF_INPUT_BUFFER_PADDING_SIZE))) return AVERROR(ENOMEM); + memset(bin->data + length, 0, FF_INPUT_BUFFER_PADDING_SIZE); + bin->size = length; bin->pos = avio_tell(pb); if (avio_read(pb, bin->data, length) != length) {