mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
vulkan_h264: check if slices_buf exists on end_frame
The issue is that while decode_slice is guaranteed to never get called without start_frame, end_frame is not. Moreover, it is not guaranteed it won't be called twice. On a badly-broken sample, this is what happens, which leads to a segfault, as vp->slices_buf doesn't exist, as it has been handed off for decoding already and isn't owned by the frame. Return an error as it's indicative that it's a corrupt stream rather than just missing any slices. Prevents a segfault.
This commit is contained in:
parent
10f1bbfe11
commit
c39e861a3d
@ -520,6 +520,9 @@ static int vk_h264_end_frame(AVCodecContext *avctx)
|
||||
if (!hp->h264_pic_info.sliceCount)
|
||||
return 0;
|
||||
|
||||
if (!vp->slices_buf)
|
||||
return AVERROR(EINVAL);
|
||||
|
||||
if (!dec->session_params) {
|
||||
int err = vk_h264_create_params(avctx, &dec->session_params);
|
||||
if (err < 0)
|
||||
|
Loading…
Reference in New Issue
Block a user