From e605e670b174c07052969bcc46baf408d319032d Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Sun, 17 Oct 2021 14:56:50 -0400 Subject: [PATCH] Fix vaultOperation Python object leak. This fixes a leak of a Python bound method. Leaking this means that PythonFileMods keys are still loaded when the client exits. These methods are most commonly used by xSimpleImager.py, so the effect of the leak can be observed by simply linking to Relto and quitting with a leak detector active. --- Sources/Plasma/FeatureLib/pfPython/pyVaultNode.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sources/Plasma/FeatureLib/pfPython/pyVaultNode.cpp b/Sources/Plasma/FeatureLib/pfPython/pyVaultNode.cpp index 15ab3ea6..07d92d9e 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyVaultNode.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyVaultNode.cpp @@ -123,6 +123,8 @@ void pyVaultNode::pyVaultNodeOperationCallback::VaultOperationStarted( UInt32 co PyObject* retVal = PyObject_CallMethod(fCbObject, "vaultOperationStarted", "l", context); Py_XDECREF(retVal); } + + Py_DECREF(func); } } } @@ -150,6 +152,8 @@ void pyVaultNode::pyVaultNodeOperationCallback::VaultOperationComplete( UInt32 c Py_XDECREF(retVal); Py_DECREF(t); } + + Py_DECREF(func); } } }