[FFmpeg-devel] [PATCH] avcodec/gdv: Check remaining output after decode 5/6/8/
Paul B Mahol
onemda at gmail.com
Thu May 30 12:28:35 EEST 2019
On 5/29/19, Michael Niedermayer <michael at niedermayer.cc> wrote:
> Improves: Timeout (355sec -> 97sec)
> Improves:
> 14709/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_GDV_fuzzer-5704215281795072
>
> Found-by: continuous fuzzing process
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> ---
> libavcodec/gdv.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/gdv.c b/libavcodec/gdv.c
> index 9cf30c09e4..a5ce6b799e 100644
> --- a/libavcodec/gdv.c
> +++ b/libavcodec/gdv.c
> @@ -308,7 +308,7 @@ static int decompress_5(AVCodecContext *avctx, unsigned
> skip)
> int len;
> int b = bytestream2_get_byte(gb);
> if (b == 0) {
> - break;
> + return 0;
Why?
> }
> if (b != 0xFF) {
> len = b;
> @@ -323,6 +323,8 @@ static int decompress_5(AVCodecContext *avctx, unsigned
> skip)
> lz_copy(pb, g2, off, len);
> }
> }
> + if (bytestream2_get_bytes_left_p(pb) > 0)
> + return AVERROR_INVALIDDATA;
> return 0;
> }
>
> @@ -445,6 +447,9 @@ static int decompress_68(AVCodecContext *avctx, unsigned
> skip, unsigned use8)
> }
> }
>
> + if (bytestream2_get_bytes_left_p(pb) > 0)
> + return AVERROR_INVALIDDATA;
> +
> return 0;
> }
>
> --
> 2.21.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list