Commit f28299da authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/h264dec: Clear ref_count on slice header processing failure

Fixes using freed memory
Introduced in 74480198
Fixes: 471/fuzz-1-ffmpeg_VIDEO_AV_CODEC_ID_H264_fuzzer

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpegSigned-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 1ae39429
...@@ -670,8 +670,11 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size) ...@@ -670,8 +670,11 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size)
case H264_NAL_SLICE: case H264_NAL_SLICE:
h->has_slice = 1; h->has_slice = 1;
if ((err = ff_h264_queue_decode_slice(h, nal))) if ((err = ff_h264_queue_decode_slice(h, nal))) {
H264SliceContext *sl = h->slice_ctx + h->nb_slice_ctx_queued;
sl->ref_count[0] = sl->ref_count[1] = 0;
break; break;
}
if (h->current_slice == 1) { if (h->current_slice == 1) {
if (avctx->active_thread_type & FF_THREAD_FRAME && !h->avctx->hwaccel && if (avctx->active_thread_type & FF_THREAD_FRAME && !h->avctx->hwaccel &&
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment