Whan I run the following function, I see a mem leak, a 20 mb of memory is allocated and is not freed. Here is the code I run:
>>> import esauth >>> for i in range(1000000): ... ss = esauth.penc('sumer') ... >>> for i in range(1000000): ... ss = esauth.penc('sumer') ... And here is the penc() function. static PyObject * penc(PyObject *self, PyObject *args) { unsigned char *s= NULL; unsigned char *buf = NULL; PyObject * result = NULL; unsigned int v,len,i = 0; if (!PyArg_ParseTuple(args, "s#", &s, &len)) return NULL; buf = strdup(s); if (!buf) { PyErr_SetString(PyExc_MemoryError, "Out of memory: strdup failed"); return NULL; } /*string manipulation*/ result = PyString_FromString(buf); free(buf); return result; } Am I doing something wrong? Thanks, -- http://mail.python.org/mailman/listinfo/python-list