From: Mark Dickinson Date: Thu, 29 Jul 2010 21:41:59 +0000 (+0000) Subject: Issue #9422: Fix memory leak when re-initializing a struct.Struct object. X-Git-Tag: v3.2a1~55 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cf28b95800ce1480b88975270cc3a3d65dee4664;p=thirdparty%2FPython%2Fcpython.git Issue #9422: Fix memory leak when re-initializing a struct.Struct object. --- diff --git a/Misc/NEWS b/Misc/NEWS index a4d301fb31eb..9eaed9adf6a4 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -1492,6 +1492,8 @@ Library Extension Modules ----------------- +- Issue #9422: Fix memory leak when re-initializing a struct.Struct object. + - Issue #7900: The getgroups(2) system call on MacOSX behaves rather oddly compared to other unix systems. In particular, os.getgroups() does not reflect any changes made using os.setgroups() but basicly always diff --git a/Modules/_struct.c b/Modules/_struct.c index d55ce0f60d50..f85d5622d7b5 100644 --- a/Modules/_struct.c +++ b/Modules/_struct.c @@ -1247,6 +1247,9 @@ prepare_s(PyStructObject *self) PyErr_NoMemory(); return -1; } + /* Free any s_codes value left over from a previous initialization. */ + if (self->s_codes != NULL) + PyMem_FREE(self->s_codes); self->s_codes = codes; s = fmt;