K
k3xji
When I run the following function, I seem to have a mem leak, a 20 mb
of memory
is allocated and is not freed. Here is the code I run:
.... ss = esauth.penc('sumer')
....
.... 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,
of memory
is allocated and is not freed. Here is the code I run:
.... ss = esauth.penc('sumer')
....
.... 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,