From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 28F414D40C for ; Mon, 22 Dec 2025 16:54:10 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'4mcpN+1qen+fmMFIvj1lrXGSM+v020yK1eU20KAsMlQ=', expected b'SNFscUzpPC4Npix9CHpSUPlY4HbNVCGSn1zjxpB/c9Y=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1766422434; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=4mcpN+1qen+fmMFIvj1lrXGSM+v020yK1eU20KAsMlQ=; b=ZOQnzux6qyoFeVf/7D4RE2u/7uqRhDNMZgv2FGbALuofmuuXlmSYg5+ZObZUhI7TuZzcM /zf3MjZxzhJKft78xneTprZzWT1YCL4bLbCh9UMvaSVLY2LZ67JBxdyf/rXG6Z9peOnxydD 6TRXP5duFNiU6PADfMw1TYSNhycSXnZwscNtWbG91N2OANE1qYx7BOpKKDAMRHEf+M0mLlV kSy6x+hqYtwij5A93TGTbM++t5K2rWZxA/xL6xSzZ5UrS4mKTrZX83lloU0CLTzNMZdLwYm WrBpDhwtzeiFBT5lZLM3D4vlDyIUsIiJa5T5tbcAuPTgUQTjTZJu4ZxyZPjQ== Received: from [172.20.0.2] (unknown [172.19.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 4CF62690AC0; Mon, 22 Dec 2025 18:53:54 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1766422424; b=J7rP8JCApz3h0R41bADMoCraoJ2W8pKQCBhVTwasfsXqOL1i2uRqfRB3eqx+Xdjfa+1eb qUQxmncjyo/pXZIpk5sKWvnB5MTZ31WFNPEdqw9gaJM/4QXXOacIKDrzldjBxe2juUluUF+ LJMQFx1ZIfnxlLR9uIXilk70Auqdi+WwInFZZZPW6Ukk/UMLeit3kuumEb7l9v/ImaOiAmi 0w5huP9OU9qPSdX6JWz0ZKgqVnGCec+j8YqQKu+DP8UnX9dRWNOmOxWH8GtRMHKpzy9HhBu 9qUf5Lw/9voGjQGwxHTu93G/9DTj8P26U72BkOMnDyV7M1VraMmTvyR1crOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1766422424; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=USH8VTG8WCXU45hQYa7ceRY3n4mMSiv1COszMAOIoL4=; b=sMIDkJEDoH+Is3BsGA2yiUNDyQeuFioMEnXgx5luXijjMPhyWc6T5XO9uq328I+qKyn7y /WPjuiHSz/YfKN0VXEiBI/3HKmaM8EWylaF7G3YuB8BxzR65+0lgF7fhhyZwqxE21Hsbqk7 jMvitBruL6Yhs/emt4srKhL0BEMSKEoDtfLx9dIy/xHfOmK3S0EwfdS+u40AYx6VuizT6IV AE2uEuMEE3dS/25aWj1LdStZO/hVDrd8V4/+90KpqP9BrEfVu8RMCopyQX+1s6paKE9kNwd 4F84euVS1w8cS3ox6W2UsCUbLyFiZpn7DltWQL/Rf7rcJyBCJgCcNf2n5Ucg== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1766422417; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=SNFscUzpPC4Npix9CHpSUPlY4HbNVCGSn1zjxpB/c9Y=; b=rRSWn2sqa83B69oaGolJOoZl//WKuSXpEgfdivPMVxn3+NgQiMyUl1/gpG/nh2oPWHKw6 0zHqxyXWUUPWB4QuCwPqJxfKNDkzapSuzOkRjgXrEZRVrfYCygezFHXaQu9a0PvH1dacXL8 t7yuP958SQjAX5SgTCl8Nb9G88dWS3Bt9KNoFmhT7AWoIDqVIwWO6OzHcxBTvCivY/SP8Yx wVPZbUNkcltRW6bNw5vGM/BmeekW6gnOnTU1ZxaQ0I5u/WChwxVEISKZ9TfO8GB9+/YyhTJ DO6QoDKN5WphtXkZ/rv4tFwBk4vGJ4VBPJlhjDVD+8o9xpxOvOKQnM2JJZqQ== Received: from 55ca25703178 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id EAB6F690A93 for ; Mon, 22 Dec 2025 18:53:36 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Mon, 22 Dec 2025 16:53:36 -0000 Message-ID: <176642241710.60.8050881729441821444@2cb04c0e5124> Message-ID-Hash: UENKCIL55SLPJ6QDJBZX7MM3U44I4EIB X-Message-ID-Hash: UENKCIL55SLPJ6QDJBZX7MM3U44I4EIB X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] avfilter/vf_libopencv: fix memleak (PR #21267) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Zhao Zhili via ffmpeg-devel Cc: Zhao Zhili Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #21267 opened by Zhao Zhili (quink) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21267 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21267.patch >>From 52833f19a2582ca05852f93e26d9c88d9a47fdfc Mon Sep 17 00:00:00 2001 From: Zhao Zhili Date: Tue, 23 Dec 2025 00:32:44 +0800 Subject: [PATCH 1/2] avfilter/vf_libopencv: fix memleak --- libavfilter/vf_libopencv.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/libavfilter/vf_libopencv.c b/libavfilter/vf_libopencv.c index 8a80a7fdab..bc8fd0bad5 100644 --- a/libavfilter/vf_libopencv.c +++ b/libavfilter/vf_libopencv.c @@ -36,9 +36,9 @@ #include "formats.h" #include "video.h" -static void fill_iplimage_from_frame(IplImage *img, const AVFrame *frame, enum AVPixelFormat pixfmt) +static void fill_iplimage_from_frame(IplImage **_img, const AVFrame *frame, enum AVPixelFormat pixfmt) { - IplImage *tmpimg; + IplImage *img; int depth, channels_nb; if (pixfmt == AV_PIX_FMT_GRAY8) { depth = IPL_DEPTH_8U; channels_nb = 1; } @@ -46,8 +46,7 @@ static void fill_iplimage_from_frame(IplImage *img, const AVFrame *frame, enum A else if (pixfmt == AV_PIX_FMT_BGR24) { depth = IPL_DEPTH_8U; channels_nb = 3; } else return; - tmpimg = cvCreateImageHeader((CvSize){frame->width, frame->height}, depth, channels_nb); - *img = *tmpimg; + *_img = img = cvCreateImageHeader((CvSize){frame->width, frame->height}, depth, channels_nb); img->imageData = img->imageDataOrigin = frame->data[0]; img->dataOrder = IPL_DATA_ORDER_PIXEL; img->origin = IPL_ORIGIN_TL; @@ -366,7 +365,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) OCVContext *s = ctx->priv; AVFilterLink *outlink= inlink->dst->outputs[0]; AVFrame *out; - IplImage inimg, outimg; + IplImage *inimg, *outimg; out = ff_get_video_buffer(outlink, outlink->w, outlink->h); if (!out) { @@ -377,10 +376,12 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) fill_iplimage_from_frame(&inimg , in , inlink->format); fill_iplimage_from_frame(&outimg, out, inlink->format); - s->end_frame_filter(ctx, &inimg, &outimg); - fill_frame_from_iplimage(out, &outimg, inlink->format); + s->end_frame_filter(ctx, inimg, outimg); + fill_frame_from_iplimage(out, outimg, inlink->format); av_frame_free(&in); + cvReleaseImageHeader(&inimg); + cvReleaseImageHeader(&outimg); return ff_filter_frame(outlink, out); } -- 2.49.1 >>From b73758bfd7ae344676effc353b3b5b30228dbaa1 Mon Sep 17 00:00:00 2001 From: Zhao Zhili Date: Tue, 23 Dec 2025 00:36:29 +0800 Subject: [PATCH 2/2] avfilter/vf_libopencv: use av_unreachable on unreachable path --- libavfilter/vf_libopencv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavfilter/vf_libopencv.c b/libavfilter/vf_libopencv.c index bc8fd0bad5..06a2954bc6 100644 --- a/libavfilter/vf_libopencv.c +++ b/libavfilter/vf_libopencv.c @@ -26,6 +26,7 @@ #include "config.h" #include #include +#include "libavutil/avassert.h" #include "libavutil/avstring.h" #include "libavutil/common.h" #include "libavutil/file.h" @@ -44,7 +45,7 @@ static void fill_iplimage_from_frame(IplImage **_img, const AVFrame *frame, enum if (pixfmt == AV_PIX_FMT_GRAY8) { depth = IPL_DEPTH_8U; channels_nb = 1; } else if (pixfmt == AV_PIX_FMT_BGRA) { depth = IPL_DEPTH_8U; channels_nb = 4; } else if (pixfmt == AV_PIX_FMT_BGR24) { depth = IPL_DEPTH_8U; channels_nb = 3; } - else return; + else av_unreachable("unsupported pix fmt"); *_img = img = cvCreateImageHeader((CvSize){frame->width, frame->height}, depth, channels_nb); img->imageData = img->imageDataOrigin = frame->data[0]; -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org