summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Heller <theller@ctypes.org>2009-02-10 18:43:01 (GMT)
committerThomas Heller <theller@ctypes.org>2009-02-10 18:43:01 (GMT)
commit3689ae256e4b121eec1540ec9cf61d73a131a0e5 (patch)
tree7bb03b88855f55f583bf920dadc671b96664acdb
parentd155bbfbb28944c2825a2327baed386a38456db2 (diff)
downloadcpython-3689ae256e4b121eec1540ec9cf61d73a131a0e5.zip
cpython-3689ae256e4b121eec1540ec9cf61d73a131a0e5.tar.gz
cpython-3689ae256e4b121eec1540ec9cf61d73a131a0e5.tar.bz2
Issue#5203: ctypes segfaults when passing a unicode string to a
function without argtypes, if HAVE_USABLE_WCHAR_T is false.
-rw-r--r--Misc/NEWS3
-rw-r--r--Modules/_ctypes/callproc.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 536712a..a8b5a3c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -152,6 +152,9 @@ Core and Builtins
Library
-------
+- Issue #5203: Fixed ctypes segfaults when passing a unicode string to a
+ function without argtypes (only occurs if HAVE_USABLE_WCHAR_T is false).
+
- Issue #3386: distutils.sysconfig.get_python_lib prefix argument was ignored
under NT and OS2. Patch by Philip Jenvey.
diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
index 7f7d641..8988c12 100644
--- a/Modules/_ctypes/callproc.c
+++ b/Modules/_ctypes/callproc.c
@@ -664,6 +664,7 @@ static int ConvParam(PyObject *obj, Py_ssize_t index, struct argument *pa)
return 0;
#else
int size = PyUnicode_GET_SIZE(obj);
+ pa->ffi_type = &ffi_type_pointer;
size += 1; /* terminating NUL */
size *= sizeof(wchar_t);
pa->value.p = PyMem_Malloc(size);