diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 9126717df23f9639a235406cc6074b6de7be7aa7..1bde1af8c4e272ef862c98e2fe6b9f1a2f5902d0 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -641,8 +641,10 @@ static int ebml_read_binary(ByteIOContext *pb, int length, EbmlBin *bin) bin->size = length; bin->pos = url_ftell(pb); - if (get_buffer(pb, bin->data, length) != length) + if (get_buffer(pb, bin->data, length) != length) { + av_freep(&bin->data); return AVERROR(EIO); + } return 0; }