From: Thomas Heller Date: Mon, 20 Mar 2006 14:22:05 +0000 (+0000) Subject: Avoid a potential double-free bug. X-Git-Tag: v2.5a0~152 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e502693ee9af3a8f614dbc67dc56454bb31d310e;p=thirdparty%2FPython%2Fcpython.git Avoid a potential double-free bug. --- diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index ac4859ee0551..daaec022fe43 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -3191,8 +3191,10 @@ CFuncPtr_clear(CFuncPtrObject *self) Py_CLEAR(self->converters); Py_CLEAR(self->paramflags); - if (self->thunk) + if (self->thunk) { FreeCallback(self->thunk); + PyMem_Free(self->thunk); + } self->thunk = NULL; return CData_clear((CDataObject *)self); diff --git a/Modules/_ctypes/callbacks.c b/Modules/_ctypes/callbacks.c index 286faa351876..4b1ca58483ea 100644 --- a/Modules/_ctypes/callbacks.c +++ b/Modules/_ctypes/callbacks.c @@ -292,7 +292,6 @@ static void closure_fcn(ffi_cif *cif, void FreeCallback(THUNK thunk) { FreeClosure(((ffi_info *)thunk)->pcl); - PyMem_Free(thunk); } THUNK AllocFunctionCallback(PyObject *callable,