summaryrefslogtreecommitdiffstats
path: root/Modules/_io/textio.c
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2014-06-11 04:19:39 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2014-06-11 04:19:39 (GMT)
commitec87a13e5d6749cb79b75be0e8ef1525dbe6ca3e (patch)
tree626252e6870ab352f751f2e1301d7807d97e6f7a /Modules/_io/textio.c
parent915d14190ee07b66e29b385943a942a51c825ae6 (diff)
parent76d3f14e01ed4096fa39cd99262690fd050efcf0 (diff)
downloadcpython-ec87a13e5d6749cb79b75be0e8ef1525dbe6ca3e.zip
cpython-ec87a13e5d6749cb79b75be0e8ef1525dbe6ca3e.tar.gz
cpython-ec87a13e5d6749cb79b75be0e8ef1525dbe6ca3e.tar.bz2
PyErr_NormalizeException doesn't like being called with an exception set
(issues #21677, #21310).
Diffstat (limited to 'Modules/_io/textio.c')
-rw-r--r--Modules/_io/textio.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c
index eac5e82..140688f 100644
--- a/Modules/_io/textio.c
+++ b/Modules/_io/textio.c
@@ -2619,14 +2619,14 @@ textiowrapper_close(textio *self, PyObject *args)
PyErr_Restore(exc, val, tb);
}
else {
- PyObject *val2;
+ PyObject *exc2, *val2, *tb2;
+ PyErr_Fetch(&exc2, &val2, &tb2);
PyErr_NormalizeException(&exc, &val, &tb);
Py_DECREF(exc);
Py_XDECREF(tb);
- PyErr_Fetch(&exc, &val2, &tb);
- PyErr_NormalizeException(&exc, &val2, &tb);
+ PyErr_NormalizeException(&exc2, &val2, &tb2);
PyException_SetContext(val2, val);
- PyErr_Restore(exc, val2, tb);
+ PyErr_Restore(exc2, val2, tb2);
}
}
return res;