Issue #23785: Fixed memory leak in TextIOWrapper.tell() in rare circumstances.
diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c
index 65c8d8d..8ac8a4a 100644
--- a/Modules/_io/textio.c
+++ b/Modules/_io/textio.c
@@ -2338,12 +2338,9 @@
PyErr_Fetch(&type, &value, &traceback);
res = PyObject_CallMethod(self->decoder, "setstate", "(O)", saved_state);
+ _PyErr_ReplaceException(type, value, traceback);
Py_DECREF(saved_state);
- if (res == NULL)
- return NULL;
- Py_DECREF(res);
-
- PyErr_Restore(type, value, traceback);
+ Py_XDECREF(res);
}
return NULL;
}