Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit fa77e09

Browse files
committed
builtin_map(): A better fix for the previous leak plug (remember
PyList_Append steals a reference even if it fails). builtin_filter(): Had the same leak problem as builtin_map().
1 parent c9bda41 commit fa77e09

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

Python/bltinmodule.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,10 @@ builtin_filter(self, args)
232232
goto Fail_1;
233233
}
234234
else {
235+
int status = PyList_Append(result, item);
235236
j++;
236-
if (PyList_Append(result, item) < 0)
237+
Py_DECREF(item);
238+
if (status < 0)
237239
goto Fail_1;
238240
}
239241
} else {
@@ -901,9 +903,10 @@ builtin_map(self, args)
901903
goto Fail_1;
902904
}
903905
if (i >= len) {
904-
if (PyList_Append(result, value) < 0)
905-
goto Fail_1;
906+
int status = PyList_Append(result, value);
906907
Py_DECREF(value);
908+
if (status < 0)
909+
goto Fail_1;
907910
}
908911
else {
909912
if (PyList_SetItem(result, i, value) < 0)

0 commit comments

Comments
 (0)