gh-101819: Harden _io init (#104352)

Fix potential refleak if PyModule_AddObject() fails.
This commit is contained in:
Erlend E. Aasland 2023-05-10 12:59:03 +02:00 committed by GitHub
parent 22f3425c3d
commit 68a8ca6dc1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -730,9 +730,11 @@ PyInit__io(void)
"UnsupportedOperation", PyExc_OSError, PyExc_ValueError);
if (state->unsupported_operation == NULL)
goto fail;
if (PyModule_AddObject(m, "UnsupportedOperation",
Py_NewRef(state->unsupported_operation)) < 0)
if (PyModule_AddObjectRef(m, "UnsupportedOperation",
state->unsupported_operation) < 0)
{
goto fail;
}
/* BlockingIOError, for compatibility */
if (PyModule_AddObjectRef(m, "BlockingIOError",
@ -785,7 +787,6 @@ PyInit__io(void)
return m;
fail:
Py_XDECREF(state->unsupported_operation);
Py_DECREF(m);
return NULL;
}