summaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/loco.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libavcodec/loco.c b/libavcodec/loco.c
index 559f7c2..e21e693 100644
--- a/libavcodec/loco.c
+++ b/libavcodec/loco.c
@@ -240,10 +240,14 @@ static int decode_frame(AVCodecContext *avctx,
break;
}
+ if (decoded < 0 || decoded > buf_size)
+ goto buf_too_small;
+ buf_size -= decoded;
+
*got_frame = 1;
*(AVFrame*)data = l->pic;
- return buf_size < 0 ? -1 : avpkt->size - buf_size;
+ return avpkt->size - buf_size;
buf_too_small:
av_log(avctx, AV_LOG_ERROR, "Input data too small.\n");
return AVERROR(EINVAL);
OpenPOWER on IntegriCloud