From 2da63cc338a0356a59ce42cad9af8e1e368c9fbf Mon Sep 17 00:00:00 2001 From: Mark Dickinson Date: Thu, 29 Jul 2010 21:43:24 +0000 Subject: [PATCH] Merged revisions 83239 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r83239 | mark.dickinson | 2010-07-29 22:41:59 +0100 (Thu, 29 Jul 2010) | 2 lines Issue #9422: Fix memory leak when re-initializing a struct.Struct object. ........ --- Misc/NEWS | 2 ++ Modules/_struct.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/Misc/NEWS b/Misc/NEWS index 833d0deef6..95051913b6 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -323,6 +323,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 c1db286b05..74d846a42c 100644 --- a/Modules/_struct.c +++ b/Modules/_struct.c @@ -1233,6 +1233,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; -- 2.40.0