[FFmpeg-devel] [PATCH V1] lavfi/buffersrc: Remove redundancy free after ff_filter_frame fail

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Sat Jan 4 12:50:00 EET 2020


Jun Zhao:
> From: Jun Zhao <barryjzhao at tencent.com>
> 
> ff_filter_frame always free the frame in case of error, so we don't
> need to free the frame after ff_filter_frame fail.
> 
> Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
> ---
>  libavfilter/buffersrc.c |    4 +---
>  1 files changed, 1 insertions(+), 3 deletions(-)
> 
> diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
> index 64940d9..bf30f54 100644
> --- a/libavfilter/buffersrc.c
> +++ b/libavfilter/buffersrc.c
> @@ -240,10 +240,8 @@ static int av_buffersrc_add_frame_internal(AVFilterContext *ctx,
>      }
>  
>      ret = ff_filter_frame(ctx->outputs[0], copy);
> -    if (ret < 0) {
> -        av_frame_free(&copy);
> +    if (ret < 0)
>          return ret;
> -    }
>  
>      if ((flags & AV_BUFFERSRC_FLAG_PUSH)) {
>          ret = push_frame(ctx->graph);
> 

Given that ff_filter_frame can't reset copy to NULL upon freeing it,
this actually fixes a double-free. Coverity just complained about this
(it's CID 1457230).

- Andreas


More information about the ffmpeg-devel mailing list