bpo-34068: _io__IOBase_close_impl could call _PyObject_SetAttrId with an exception set#8282
Conversation
|
The code could be simpler: PyErr_Fetch(&exc, &val, &tb);
rc = _PyObject_SetAttrId(self, &PyId___IOBase_closed, Py_True);
_PyErr_ChainExceptions(exc, val, tb);
if (rc < 0) {
Py_CLEAR(res);
} |
… an exception set
vstinner
left a comment
There was a problem hiding this comment.
LGTM, but I have a minor request on the NEWS entry.
| @@ -0,0 +1,2 @@ | |||
| In :meth:`io.IOBase.close`, ensure that ``_PyObject_SetAttrId()`` is not | |||
There was a problem hiding this comment.
In the changelog, you should try to avoid to mention low-level C internals. You can say something like: "In io.IOBase.close, ensure that the closed attribute is not set to True with a live exception. (...)".
|
Thanks @ZackerySpytz for the PR, and @serhiy-storchaka for merging it 🌮🎉.. I'm working now to backport this PR to: 3.6. |
|
Thanks @ZackerySpytz for the PR, and @serhiy-storchaka for merging it 🌮🎉.. I'm working now to backport this PR to: 2.7. |
|
Thanks @ZackerySpytz for the PR, and @serhiy-storchaka for merging it 🌮🎉.. I'm working now to backport this PR to: 3.7. |
|
GH-8310 is a backport of this pull request to the 3.7 branch. |
… an exception set (pythonGH-8282) (cherry picked from commit 28f0736) Co-authored-by: Zackery Spytz <zspytz@gmail.com>
|
Sorry, @ZackerySpytz and @serhiy-storchaka, I could not cleanly backport this to |
|
Sorry, @ZackerySpytz and @serhiy-storchaka, I could not cleanly backport this to |
…d with an exception set (pythonGH-8282). (cherry picked from commit 28f0736) Co-authored-by: Zackery Spytz <zspytz@gmail.com>
|
GH-8312 is a backport of this pull request to the 3.6 branch. |
Thanks. It now LGTM ;-) Thanks for the fix @ZackerySpytz! |
…d with an exception set (pythonGH-8282). (pythonGH-8312) (cherry picked from commit 28f0736) Co-authored-by: Zackery Spytz <zspytz@gmail.com>. (cherry picked from commit cc13016) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
https://bugs.python.org/issue34068