[FFmpeg-devel] [PATCH 5/5] avfilter/vf_blend: fix un-checked potential memory allocation failure

Lynne dev at lynne.ee
Mon Jan 3 04:23:08 EET 2022


2 Jan 2022, 15:51 by jianhua.wu-at-intel.com at ffmpeg.org:

> Signed-off-by: Wu Jianhua <jianhua.wu at intel.com>
> ---
>  libavfilter/vf_blend.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/libavfilter/vf_blend.c b/libavfilter/vf_blend.c
> index b6f3c4fed3..2d433e439f 100644
> --- a/libavfilter/vf_blend.c
> +++ b/libavfilter/vf_blend.c
> @@ -279,7 +279,11 @@ static AVFrame *blend_frame(AVFilterContext *ctx, AVFrame *top_buf,
>  dst_buf = ff_get_video_buffer(outlink, outlink->w, outlink->h);
>  if (!dst_buf)
>  return top_buf;
> -    av_frame_copy_props(dst_buf, top_buf);
> +
> +    if (av_frame_copy_props(dst_buf, top_buf) < 0) {
> +        av_frame_free(&dst_buf);
> +        return top_buf;
> +    }
>  
>  for (plane = 0; plane < s->nb_planes; plane++) {
>  int hsub = plane == 1 || plane == 2 ? s->hsub : 0;
>

Pushed patches 2 and 3. The blend filter doesn't work for me:
https://0x0.st/osRM.jpg
This is not what it's meant to look like at all, for blank, default options.

Patch 1 is a driver bug. The driver should not advertise the
HDR extension as supported if there's no swapchain. The HDR
extension explicitly requires a swapchain, and the Vulkan specs
say that devices are meant to only advertise supported extensions,
which the HDR extension wouldn't be if the swapchain extension
has not been loaded.
I pushed an alternative version that just removes the HDR extension,
but you need to notify your Windows driver developers that it's
not doing what it should.


More information about the ffmpeg-devel mailing list