[Pcsclite-cvs-commit] r2600 - trunk/pycsc
rousseau at alioth.debian.org
rousseau at alioth.debian.org
Thu Aug 2 08:54:44 UTC 2007
Author: rousseau
Date: 2007-08-02 08:54:44 +0000 (Thu, 02 Aug 2007)
New Revision: 2600
Modified:
trunk/pycsc/pycsc.c
Log:
avoid a memory leak in listReader()
Thanks to Dima Tisnek for the patch
Modified: trunk/pycsc/pycsc.c
===================================================================
--- trunk/pycsc/pycsc.c 2007-07-05 19:24:00 UTC (rev 2599)
+++ trunk/pycsc/pycsc.c 2007-08-02 08:54:44 UTC (rev 2600)
@@ -982,16 +982,17 @@
mszReadersScan = mszReaders;
while (*mszReadersScan != '\0')
{
- //+ Does that free memomry properly in case of error with the append
- //+ probably Py_BuildValue("s", mszReadersScan) needs a DECREF
- //+ and so does ret_value
- if (PyList_Append(ret_value, Py_BuildValue("s", mszReadersScan)))
+ PyObject *tmp = Py_BuildValue("s", mszReadersScan);
+ if (PyList_Append(ret_value, tmp))
{
PyErr_SetString(PycscException, "Could not append reader name");
SCardReleaseContext(hContext);
PyMem_Free((void *)mszReaders);
+ Py_CLEAR(tmp);
+ Py_CLEAR(ret_value);
return NULL;
}
+ Py_DECREF(tmp);
mszReadersScan += strlen(mszReadersScan)+1;
}
SCardReleaseContext(hContext);
More information about the Pcsclite-cvs-commit
mailing list