From e502693ee9af3a8f614dbc67dc56454bb31d310e Mon Sep 17 00:00:00 2001 From: Thomas Heller Date: Mon, 20 Mar 2006 14:22:05 +0000 Subject: Avoid a potential double-free bug. --- Modules/_ctypes/_ctypes.c | 4 +++- Modules/_ctypes/callbacks.c | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index ac4859e..daaec02 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 286faa3..4b1ca58 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, -- cgit v0.12