Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 2ab7e11

Browse filesBrowse files
[3.13] gh-130163: Fix a leak in _pickle.c after backporting (GH-130568)
1 parent 75358a8 commit 2ab7e11
Copy full SHA for 2ab7e11

File tree

Expand file treeCollapse file tree

1 file changed

+7
-0
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+7
-0
lines changed

‎Modules/_pickle.c

Copy file name to clipboardExpand all lines: Modules/_pickle.c
+7Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1938,39 +1938,46 @@ whichmodule(PyObject *global, PyObject *dotted_path)
19381938
i = 0;
19391939
while (PyDict_Next(modules, &i, &module_name, &module)) {
19401940
if (_checkmodule(module_name, module, global, dotted_path) == 0) {
1941+
Py_DECREF(modules);
19411942
return Py_NewRef(module_name);
19421943
}
19431944
if (PyErr_Occurred()) {
1945+
Py_DECREF(modules);
19441946
return NULL;
19451947
}
19461948
}
19471949
}
19481950
else {
19491951
PyObject *iterator = PyObject_GetIter(modules);
19501952
if (iterator == NULL) {
1953+
Py_DECREF(modules);
19511954
return NULL;
19521955
}
19531956
while ((module_name = PyIter_Next(iterator))) {
19541957
module = PyObject_GetItem(modules, module_name);
19551958
if (module == NULL) {
19561959
Py_DECREF(module_name);
19571960
Py_DECREF(iterator);
1961+
Py_DECREF(modules);
19581962
return NULL;
19591963
}
19601964
if (_checkmodule(module_name, module, global, dotted_path) == 0) {
19611965
Py_DECREF(module);
19621966
Py_DECREF(iterator);
1967+
Py_DECREF(modules);
19631968
return module_name;
19641969
}
19651970
Py_DECREF(module);
19661971
Py_DECREF(module_name);
19671972
if (PyErr_Occurred()) {
19681973
Py_DECREF(iterator);
1974+
Py_DECREF(modules);
19691975
return NULL;
19701976
}
19711977
}
19721978
Py_DECREF(iterator);
19731979
}
1980+
Py_DECREF(modules);
19741981

19751982
/* If no module is found, use __main__. */
19761983
return &_Py_ID(__main__);

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.