Fully initialize allocated memory.
__pyx_CyFunctionObject.defaults must be fully zeroed or a segfault or memory corruption may occur if the object is visited by the garbage collector before defaults is later populated. Uninitialized memory is cast to PyObject* with undefined results: static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) { ... if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_VISIT(pydefaults[i]); ^^^^^^^^^^^^^
Showing
Please register or sign in to comment