summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2007-09-12 18:29:18 (GMT)
committerGeorg Brandl <georg@python.org>2007-09-12 18:29:18 (GMT)
commit07752aba5e5db035ffbaac9a1387952768f514d2 (patch)
treeffbf1477fac456d085f571e1d40e1ae383ad751c /Mac
parent5a25fcd585f379476c073941123476165bf69d2b (diff)
downloadcpython-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.c1
-rw-r--r--Mac/Modules/cf/cfsupport.py1
-rw-r--r--Mac/Modules/cf/pycfbridge.c1
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)) {