From 5dba4b217c548524a93e306a3635d963ddd81c42 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Tue, 7 Feb 2023 16:26:14 +0100 Subject: [PATCH] avcodec/wavarc: properly handle invalid data --- libavcodec/wavarc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavcodec/wavarc.c b/libavcodec/wavarc.c index 956c52bfe9..6e0e66dcd8 100644 --- a/libavcodec/wavarc.c +++ b/libavcodec/wavarc.c @@ -371,7 +371,7 @@ static int wavarc_decode(AVCodecContext *avctx, AVFrame *frame, } if ((ret = init_get_bits8(gb, buf, buf_size)) < 0) - return ret; + goto fail; skip_bits(gb, s->skip); switch (avctx->codec_tag) { @@ -397,12 +397,14 @@ static int wavarc_decode(AVCodecContext *avctx, AVFrame *frame, fail: s->bitstream_size = 0; s->bitstream_index = 0; - return ret; + if (ret == AVERROR_EOF) + return 0; + return AVERROR_INVALIDDATA; } frame->nb_samples = s->nb_samples; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) - return ret; + goto fail; switch (avctx->sample_fmt) { case AV_SAMPLE_FMT_U8P: