avcodec/h264dec: Skip late SEI

Fixes: Race condition
Fixes: clusterfuzz-testcase-minimized-mediasource_MP2T_AVC_pipeline_integration_fuzzer-6282675434094592

Found-by: google ClusterFuzz
Tested-by: Dan Sanders <sandersd@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit f7dd408d64)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer 2022-04-27 22:16:51 +02:00
parent f5c39a8672
commit 43b4d0afd5
No known key found for this signature in database
GPG Key ID: B18E8928B3948D64
1 changed files with 4 additions and 0 deletions

View File

@ -699,6 +699,10 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size)
avpriv_request_sample(avctx, "data partitioning"); avpriv_request_sample(avctx, "data partitioning");
break; break;
case H264_NAL_SEI: case H264_NAL_SEI:
if (h->setup_finished) {
avpriv_request_sample(avctx, "Late SEI");
break;
}
ret = ff_h264_sei_decode(&h->sei, &nal->gb, &h->ps, avctx); ret = ff_h264_sei_decode(&h->sei, &nal->gb, &h->ps, avctx);
h->has_recovery_point = h->has_recovery_point || h->sei.recovery_point.recovery_frame_cnt != -1; h->has_recovery_point = h->has_recovery_point || h->sei.recovery_point.recovery_frame_cnt != -1;
if (avctx->debug & FF_DEBUG_GREEN_MD) if (avctx->debug & FF_DEBUG_GREEN_MD)