From 851a6e2f1aee6b254dd5155a358955c19926087a Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 25 Sep 2013 21:42:56 +0200 Subject: [PATCH] avcodec/wmalosslessdec: Fix return code for invalid buffer sizes Fixes infinite loop Fixes Ticket2979 Signed-off-by: Michael Niedermayer --- libavcodec/wmalosslessdec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c index 50927cae1a..df44855e53 100644 --- a/libavcodec/wmalosslessdec.c +++ b/libavcodec/wmalosslessdec.c @@ -1178,8 +1178,10 @@ static int decode_packet(AVCodecContext *avctx, void *data, int *got_frame_ptr, s->packet_done = 0; /* sanity check for the buffer length */ - if (buf_size < avctx->block_align) - return 0; + if (buf_size < avctx->block_align) { + av_log(avctx, AV_LOG_ERROR, "buf size %d invalid\n", buf_size); + return AVERROR_INVALIDDATA; + } s->next_packet_start = buf_size - avctx->block_align; buf_size = avctx->block_align;