Commit 5a23ac8460 for ffmpeg
commit 5a23ac8460a7bc1c2cdbf6ac62bd67e023451b8f
Author: Michael Niedermayer <michael@niedermayer.cc>
Date: Thu Sep 24 00:44:30 2026 +0200
avcodec/hevc: reject an alpha layer frame without a base layer frame
Fixes: NULL pointer dereference
Fixes: 70rhPmst9XNe
Fixes: hevc_alpha_null.hevc
Replicated through UnModified FFmpeg
Regression since: f926b60455
Found-by: Glops Elemiu
diff --git a/libavcodec/hevc/hevcdec.c b/libavcodec/hevc/hevcdec.c
index 9bbe6fe5a5..6f65dd5af9 100644
--- a/libavcodec/hevc/hevcdec.c
+++ b/libavcodec/hevc/hevcdec.c
@@ -3266,6 +3266,11 @@ static int hevc_frame_start(HEVCContext *s, HEVCLayerContext *l,
return AVERROR_INVALIDDATA;
}
+ if (l != &s->layers[0] && ff_hevc_is_alpha_video(s) && !s->layers[0].cur_frame) {
+ av_log(s->avctx, AV_LOG_ERROR, "Alpha layer frame without a base layer frame\n");
+ return AVERROR_INVALIDDATA;
+ }
+
av_refstruct_replace(&s->pps, pps);
if (l->sps != sps) {
const HEVCSPS *sps_base = s->layers[0].sps;