From 5ed96234690937b8487a79d11fc30e7bb39b48ec Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Fri, 16 Mar 2018 20:07:48 -0400 Subject: Fix reference leak in calling conventions --- callingconvention.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'callingconvention.cpp') diff --git a/callingconvention.cpp b/callingconvention.cpp index 2eb57567..a56b8f11 100644 --- a/callingconvention.cpp +++ b/callingconvention.cpp @@ -195,8 +195,10 @@ void CallingConvention::GetIncomingVariableForParameterVariableCallback(void* ct BNFunction* func, BNVariable* result) { CallingConvention* cc = (CallingConvention*)ctxt; - *result = cc->GetIncomingVariableForParameterVariable(*var, - func ? new Function(BNNewFunctionReference(func)) : nullptr); + Ref funcObj; + if (func) + funcObj = new Function(BNNewFunctionReference(func)); + *result = cc->GetIncomingVariableForParameterVariable(*var, funcObj); } @@ -204,8 +206,10 @@ void CallingConvention::GetParameterVariableForIncomingVariableCallback(void* ct BNFunction* func, BNVariable* result) { CallingConvention* cc = (CallingConvention*)ctxt; - *result = cc->GetParameterVariableForIncomingVariable(*var, - func ? new Function(BNNewFunctionReference(func)) : nullptr); + Ref funcObj; + if (func) + funcObj = new Function(BNNewFunctionReference(func)); + *result = cc->GetParameterVariableForIncomingVariable(*var, funcObj); } -- cgit v1.3.1