[x265] [PATCH]: Fix invalid frees

Lathambigai Kesava lathambigai.kesava at multicorewareinc.com
Fri Mar 6 04:40:06 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/496df485/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/496df485/attachment-0001.obj>


More information about the x265-devel mailing list