bpo-36150: Fix possible assertion failures due to _ctypes.c's PyCData_reduce(). (GH-12106)

This commit is contained in:
Zackery Spytz 2019-03-31 10:02:11 -06:00 committed by Serhiy Storchaka
parent 48600c72c1
commit 5f2c50810a

View file

@ -2743,10 +2743,11 @@ PyCData_reduce(PyObject *myself, PyObject *args)
"ctypes objects containing pointers cannot be pickled");
return NULL;
}
return Py_BuildValue("O(O(NN))",
_unpickle,
Py_TYPE(myself),
PyObject_GetAttrString(myself, "__dict__"),
PyObject *dict = PyObject_GetAttrString(myself, "__dict__");
if (dict == NULL) {
return NULL;
}
return Py_BuildValue("O(O(NN))", _unpickle, Py_TYPE(myself), dict,
PyBytes_FromStringAndSize(self->b_ptr, self->b_size));
}