]> granicus.if.org Git - python/commitdiff
Issue #9422: Fix memory leak when re-initializing a struct.Struct object.
authorMark Dickinson <dickinsm@gmail.com>
Thu, 29 Jul 2010 21:41:59 +0000 (21:41 +0000)
committerMark Dickinson <dickinsm@gmail.com>
Thu, 29 Jul 2010 21:41:59 +0000 (21:41 +0000)
Misc/NEWS
Modules/_struct.c

index a4d301fb31eb4600329ea1fa0f219e4abddf27e8..9eaed9adf6a48f0bb115c9e5e9d1d450e5e24841 100644 (file)
--- 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
index d55ce0f60d506d9440e486672c2b4673e687f4fa..f85d5622d7b5009af96f979976fdc9fd30d6d06c 100644 (file)
@@ -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;