diff options
author | Georg Brandl <georg@python.org> | 2007-09-12 18:29:18 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2007-09-12 18:29:18 (GMT) |
commit | 07752aba5e5db035ffbaac9a1387952768f514d2 (patch) | |
tree | ffbf1477fac456d085f571e1d40e1ae383ad751c /Mac | |
parent | 5a25fcd585f379476c073941123476165bf69d2b (diff) | |
download | cpython-07752aba5e5db035ffbaac9a1387952768f514d2.zip cpython-07752aba5e5db035ffbaac9a1387952768f514d2.tar.gz cpython-07752aba5e5db035ffbaac9a1387952768f514d2.tar.bz2 |
bug #1154: release memory allocated by "es" PyArg_ParseTuple format specifier.
Diffstat (limited to 'Mac')
-rw-r--r-- | Mac/Modules/cf/_CFmodule.c | 1 | ||||
-rw-r--r-- | Mac/Modules/cf/cfsupport.py | 1 | ||||
-rw-r--r-- | Mac/Modules/cf/pycfbridge.c | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/Mac/Modules/cf/_CFmodule.c b/Mac/Modules/cf/_CFmodule.c index 3f4d4f2..0904ae1 100644 --- a/Mac/Modules/cf/_CFmodule.c +++ b/Mac/Modules/cf/_CFmodule.c @@ -1828,6 +1828,7 @@ int CFStringRefObj_Convert(PyObject *v, CFStringRef *p_itself) if (!PyArg_Parse(v, "es", "ascii", &cStr)) return 0; *p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, kCFStringEncodingASCII); + PyMem_Free(cStr); return 1; } if (PyUnicode_Check(v)) { diff --git a/Mac/Modules/cf/cfsupport.py b/Mac/Modules/cf/cfsupport.py index 800581a..c10a85e 100644 --- a/Mac/Modules/cf/cfsupport.py +++ b/Mac/Modules/cf/cfsupport.py @@ -429,6 +429,7 @@ class CFStringRefObjectDefinition(MyGlobalObjectDefinition): if (!PyArg_Parse(v, "es", "ascii", &cStr)) return NULL; *p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, kCFStringEncodingASCII); + PyMem_Free(cStr); return 1; } if (PyUnicode_Check(v)) { diff --git a/Mac/Modules/cf/pycfbridge.c b/Mac/Modules/cf/pycfbridge.c index ae9e128..06700b3 100644 --- a/Mac/Modules/cf/pycfbridge.c +++ b/Mac/Modules/cf/pycfbridge.c @@ -285,6 +285,7 @@ PyCF_Python2CF_string(PyObject *src, CFStringRef *dst) { if (!PyArg_Parse(src, "es", "ascii", &chars)) return 0; /* This error is more descriptive than the general one below */ *dst = CFStringCreateWithCString((CFAllocatorRef)NULL, chars, kCFStringEncodingASCII); + PyMem_Free(chars); return 1; } if (PyUnicode_Check(src)) { |