From 9cdcb5262a20ccba788b2fbe59f533e0de81bf0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ferm=C3=ADn=20Gal=C3=A1n=20M=C3=A1rquez?= Date: Mon, 27 May 2024 15:26:18 +0200 Subject: [PATCH] FIX memory leak --- src/lib/expressions/ExprManager.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lib/expressions/ExprManager.cpp b/src/lib/expressions/ExprManager.cpp index c56587cdf3..4a92d91e34 100644 --- a/src/lib/expressions/ExprManager.cpp +++ b/src/lib/expressions/ExprManager.cpp @@ -123,6 +123,10 @@ ExprResult ExprManager::evaluate(ExprContextObject* exprContextObjectP, const st // The ExprResult::fill() method allocates dynamic memory. So, the callers to evaluate() are supposed to invoke ExprResult::release() // method to free it r.fill(result); + + // cjexl_eval() allocated memory for us. We have to release it in order to avoid a leak + free((char*)result); + TIME_EXPR_JEXL_EVAL_STOP(); }