Commits

Thomas Heller committed 972e861

Merged revisions 69507 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
r69507 | thomas.heller | 2009-02-10 19:59:04 +0100 (Di, 10 Feb 2009) | 13 lines

(The fix has been slightly adjusted.)

Merged revisions 69505 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
r69505 | thomas.heller | 2009-02-10 19:43:01 +0100 (Di, 10 Feb 2009) | 3 lines

Issue#5203: ctypes segfaults when passing a unicode string to a
function without argtypes, if HAVE_USABLE_WCHAR_T is false.
........
................

Comments (0)

Files changed (2)

 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.
 

Modules/_ctypes/callproc.c

 
 #ifdef CTYPES_UNICODE
 	if (PyUnicode_Check(obj)) {
+#ifdef HAVE_USABLE_WCHAR_T
 		pa->ffi_type = &ffi_type_pointer;
-#ifdef HAVE_USABLE_WCHAR_T
 		pa->value.p = PyUnicode_AS_UNICODE(obj);
 		Py_INCREF(obj);
 		pa->keep = obj;
 		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);