[Python-checkins] cpython (3.4): properly decref the return value of close()
benjamin.peterson
python-checkins at python.org
Sat Jul 5 02:18:06 CEST 2014
http://hg.python.org/cpython/rev/888fd1cdec6f
changeset: 91546:888fd1cdec6f
branch: 3.4
parent: 91542:6fb1e2ce513a
user: Benjamin Peterson <benjamin at python.org>
date: Fri Jul 04 17:00:25 2014 -0700
summary:
properly decref the return value of close()
files:
Modules/_io/_iomodule.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/Modules/_io/_iomodule.c b/Modules/_io/_iomodule.c
--- a/Modules/_io/_iomodule.c
+++ b/Modules/_io/_iomodule.c
@@ -465,11 +465,13 @@
error:
if (result != NULL) {
- PyObject *exc, *val, *tb;
+ PyObject *exc, *val, *tb, *close_result;
PyErr_Fetch(&exc, &val, &tb);
- if (_PyObject_CallMethodId(result, &PyId_close, NULL) != NULL)
+ close_result = _PyObject_CallMethodId(result, &PyId_close, NULL);
+ if (close_result != NULL) {
+ Py_DECREF(close_result);
PyErr_Restore(exc, val, tb);
- else {
+ } else {
PyObject *exc2, *val2, *tb2;
PyErr_Fetch(&exc2, &val2, &tb2);
PyErr_NormalizeException(&exc, &val, &tb);
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list