From: Thomas Heller Date: Tue, 10 Feb 2009 18:43:01 +0000 (+0000) Subject: Issue#5203: ctypes segfaults when passing a unicode string to a X-Git-Tag: v2.7a1~2055 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3689ae256e4b121eec1540ec9cf61d73a131a0e5;p=thirdparty%2FPython%2Fcpython.git Issue#5203: ctypes segfaults when passing a unicode string to a function without argtypes, if HAVE_USABLE_WCHAR_T is false. --- diff --git a/Misc/NEWS b/Misc/NEWS index 536712ab0543..a8b5a3cbe7b2 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 7f7d641fe2cd..8988c127b3f4 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);