pattern_findall(): Plug small memory leak discovered by Insure.
PyList_Append() always incref's the inserted item. Be sure to decref
it regardless of whether the append succeeds or fails.
diff --git a/Modules/_sre.c b/Modules/_sre.c
index 29e92ac..3b78fb9 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -1698,10 +1698,10 @@
break;
}
- if (PyList_Append(list, item) < 0) {
- Py_DECREF(item);
+ status = PyList_Append(list, item);
+ Py_DECREF(item);
+ if (status < 0)
goto error;
- }
if (state.ptr == state.start)
state.start = (void*) ((char*) state.ptr + state.charsize);