[x265] [PATCH]: Fix invalid frees
Lathambigai Kesava
lathambigai.kesava at multicorewareinc.com
Fri Mar 6 05:12:52 UTC 2026
>From 4923546f2c7f63be1ee97eb9b667cc3ec1472427 Mon Sep 17 00:00:00 2001
From: Lathambigai <lathambigai.kesava at multicorewareinc.com>
Date: Thu, 5 Mar 2026 15:39:31 +0530
Subject: [PATCH] Fix invalid frees
---
source/common/threadpool.cpp | 2 +-
source/encoder/api.cpp | 27 ++++++++++++---------------
2 files changed, 13 insertions(+), 16 deletions(-)
diff --git a/source/common/threadpool.cpp b/source/common/threadpool.cpp
index a5a02daca..0bd117615 100644
--- a/source/common/threadpool.cpp
+++ b/source/common/threadpool.cpp
@@ -586,7 +586,7 @@ ThreadPool* ThreadPool::allocThreadPools(x265_param* p, int& numPools, bool isTh
if (!pools[i].create(numThreads, maxProviders, nodeMaskPerPool[node]))
{
- X265_FREE(pools);
+ delete[] pools;
numPools = 0;
return NULL;
}
diff --git a/source/encoder/api.cpp b/source/encoder/api.cpp
index e54985400..9e3e63291 100644
--- a/source/encoder/api.cpp
+++ b/source/encoder/api.cpp
@@ -910,11 +910,13 @@ void x265_free_analysis_data(x265_param *param, x265_analysis_data* analysis)
bool isMultiPassOpt = param->analysisMultiPassRefine || param->analysisMultiPassDistortion;
//Free memory for Lookahead pointers
-
- X265_FREE(analysis->lookahead.satdForVbv);
- X265_FREE(analysis->lookahead.intraSatdForVbv);
- X265_FREE(analysis->lookahead.vbvCost);
- X265_FREE(analysis->lookahead.intraVbvCost);
+ if (!isMultiPassOpt && param->bDisableLookahead && isVbv)
+ {
+ X265_FREE(analysis->lookahead.satdForVbv);
+ X265_FREE(analysis->lookahead.intraSatdForVbv);
+ X265_FREE(analysis->lookahead.vbvCost);
+ X265_FREE(analysis->lookahead.intraVbvCost);
+ }
//Free memory for distortionData pointers
if (analysis->distortionData)
@@ -961,13 +963,10 @@ void x265_free_analysis_data(x265_param *param, x265_analysis_data* analysis)
X265_FREE((analysis->interData)->mv[0]);
X265_FREE((analysis->interData)->mv[1]);
- if ((analysis->interData)->mergeFlag)
+ if (maxReuseLevel > 4)
{
- X265_FREE((analysis->interData)->mergeFlag);
- }
- if ((analysis->interData)->partSize)
- {
- X265_FREE((analysis->interData)->partSize);
+ X265_FREE((analysis->interData)->mergeFlag);
+ X265_FREE((analysis->interData)->partSize);
}
if (maxReuseLevel >= 7)
{
@@ -984,10 +983,8 @@ void x265_free_analysis_data(x265_param *param, x265_analysis_data* analysis)
}
}
}
- if (analysis->interData && analysis->interData->ref)
- {
- X265_FREE(analysis->interData->ref);
- }
+ if (((minReuseLevel >= 2) && (minReuseLevel <= 6)) || isMultiPassOpt)
+ X265_FREE((analysis->interData)->ref);
X265_FREE(analysis->interData);
analysis->interData = NULL;
}
--
2.25.1
[https://multicorewareinc.com/signature/images/logo.png]<https://multicorewareinc.com/>
[https://multicorewareinc.com/signature/images/ln.png] <https://www.linkedin.com/company/multicoreware-inc/> [https://multicorewareinc.com/signature/images/twr.png] <https://twitter.com/MulticoreWare> [https://multicorewareinc.com/signature/images/fb.png] <https://www.facebook.com/multicoreware> [https://multicorewareinc.com/signature/images/yt.png] <https://www.youtube.com/channel/UCXZ1A1MzS5JwBqwBkNfsBBw?sub_confirmation=1> [https://multicorewareinc.com/signature/images/in.png] <https://www.instagram.com/multicoreware.inc/>
LATHAMBIGAI.K
Junior Engineer
M: +91 9894717937
Block 9A, 6th Floor,
DLF Cyber City, Chennai - 600 089
[https://multicorewareinc.com/signature/images/future1.png]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20260306/3447e471/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Fix-invalid-frees.patch
Type: application/octet-stream
Size: 3015 bytes
Desc: 0001-Fix-invalid-frees.patch
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20260306/3447e471/attachment-0001.obj>
More information about the x265-devel
mailing list