Issue #12881: ctypes: Fix segfault with large structure field names.

This commit is contained in:
Meador Inge 2011-10-03 21:44:22 -05:00
parent 5d0de3fbaa
commit 1efb33a682
3 changed files with 21 additions and 1 deletions

View file

@ -496,13 +496,19 @@ PyCStructUnionType_update_stgdict(PyObject *type, PyObject *fields, int isStruct
}
len = strlen(fieldname) + strlen(fieldfmt);
buf = alloca(len + 2 + 1);
buf = PyMem_Malloc(len + 2 + 1);
if (buf == NULL) {
Py_DECREF(pair);
PyErr_NoMemory();
return -1;
}
sprintf(buf, "%s:%s:", fieldfmt, fieldname);
ptr = stgdict->format;
stgdict->format = _ctypes_alloc_format_string(stgdict->format, buf);
PyMem_Free(ptr);
PyMem_Free(buf);
if (stgdict->format == NULL) {
Py_DECREF(pair);