[FFmpeg-devel] [PATCH 1/4] avutil/detection_bbox: fix the memory leak on error

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Tue Sep 28 16:45:03 EEST 2021


lance.lmwang at gmail.com:
> From: Limin Wang <lance.lmwang at gmail.com>
> 
> Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> ---
>  libavutil/detection_bbox.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/libavutil/detection_bbox.c b/libavutil/detection_bbox.c
> index 40711e6..d066567 100644
> --- a/libavutil/detection_bbox.c
> +++ b/libavutil/detection_bbox.c
> @@ -61,6 +61,7 @@ AVDetectionBBoxHeader *av_detection_bbox_create_side_data(AVFrame *frame, uint32
>      }
>  
>      if (!av_frame_new_side_data_from_buf(frame, AV_FRAME_DATA_DETECTION_BBOXES, buf)) {
> +        av_freep(&header);
>          av_buffer_unref(&buf);
>          return NULL;
>      }
> 

This is wrong: header is owned by buf (or rather by the underlying
AVBuffer) and will automatically be freed when the last AVBufferRef gets
unreferenced, which happens in the above av_buffer_unref() call. Your
patch will just lead to a double-free.

- Andreas


More information about the ffmpeg-devel mailing list