From 718e862da3e254c58447c0873decb335f688fa09 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Mon, 26 Oct 2020 00:00:56 +0100 Subject: avcodec/av1dec: Check for unset obu instead of crashing Fixes: NULL pointer dereference Fixes: 26550/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AV1_fuzzer-5417762807349248 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: James Almer Signed-off-by: Michael Niedermayer --- libavcodec/av1dec.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'libavcodec/av1dec.c') diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c index a0a279d65b..bb4295aa6f 100644 --- a/libavcodec/av1dec.c +++ b/libavcodec/av1dec.c @@ -673,7 +673,12 @@ static int av1_decode_frame(AVCodecContext *avctx, void *frame, for (int i = 0; i < s->current_obu.nb_units; i++) { CodedBitstreamUnit *unit = &s->current_obu.units[i]; AV1RawOBU *obu = unit->content; - const AV1RawOBUHeader *header = &obu->header; + const AV1RawOBUHeader *header; + + if (!obu) + continue; + + header = &obu->header; av_log(avctx, AV_LOG_DEBUG, "Obu idx:%d, obu type:%d.\n", i, unit->type); switch (unit->type) { -- cgit v1.2.3