New submission from Amaury Forgeot d'Arc <amaur...@gmail.com>: The following code segfaults on platforms where HAVE_USABLE_WCHAR_T is not defined (for example: narrow unicode build and sizeof(wchar_t)==4)
>>> from ctypes import * >>> import ctypes.util >>> CDLL(ctypes.util.find_library('c')).wcslen(u'text') (it works if the argtypes member is defined) The reason is a non initialized structure, and the correction is trivial: --- Modules/_ctypes/callproc.c~ 2007-06-15 19:10:41.000000000 +0200 +++ Modules/_ctypes/callproc.c 2009-02-10 13:28:10.000000000 +0100 @@ -538,6 +538,7 @@ int size = PyUnicode_GET_SIZE(obj); size += 1; /* terminating NUL */ size *= sizeof(wchar_t); + pa->ffi_type = &ffi_type_pointer; pa->value.p = PyMem_Malloc(size); if (!pa->value.p) { PyErr_NoMemory(); ---------- assignee: theller components: ctypes messages: 81544 nosy: amaury.forgeotdarc, theller severity: normal status: open title: ctypes segfaults when passing a unicode string to a function without argtypes type: crash versions: Python 2.6 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue5203> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com