https://github.com/python/cpython/commit/fad36bf38248130bc48b81a5e7c31a7649a6456e
commit: fad36bf38248130bc48b81a5e7c31a7649a6456e
branch: main
author: Valery Fedorenko <[email protected]>
committer: kumaraditya303 <[email protected]>
date: 2025-01-31T20:06:30+05:30
summary:
gh-126108: Fix potential null pointer dereference in
`PySys_AddWarnOptionUnicode` (#126118)
files:
A Misc/NEWS.d/next/Security/2024-10-29-09-15-10.gh-issue-126108.eTIjHY.rst
M Python/sysmodule.c
diff --git
a/Misc/NEWS.d/next/Security/2024-10-29-09-15-10.gh-issue-126108.eTIjHY.rst
b/Misc/NEWS.d/next/Security/2024-10-29-09-15-10.gh-issue-126108.eTIjHY.rst
new file mode 100644
index 00000000000000..9f2c7e84d4dff0
--- /dev/null
+++ b/Misc/NEWS.d/next/Security/2024-10-29-09-15-10.gh-issue-126108.eTIjHY.rst
@@ -0,0 +1 @@
+Fix a possible ``NULL`` pointer dereference in
:c:func:`!PySys_AddWarnOptionUnicode`.
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 7e4cb45af05672..11b96c8455de14 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -2847,6 +2847,7 @@ PySys_ResetWarnOptions(void)
static int
_PySys_AddWarnOptionWithError(PyThreadState *tstate, PyObject *option)
{
+ assert(tstate != NULL);
PyObject *warnoptions = get_warnoptions(tstate);
if (warnoptions == NULL) {
return -1;
@@ -2862,11 +2863,11 @@ PyAPI_FUNC(void)
PySys_AddWarnOptionUnicode(PyObject *option)
{
PyThreadState *tstate = _PyThreadState_GET();
+ _Py_EnsureTstateNotNULL(tstate);
+ assert(!_PyErr_Occurred(tstate));
if (_PySys_AddWarnOptionWithError(tstate, option) < 0) {
/* No return value, therefore clear error state if possible */
- if (tstate) {
- _PyErr_Clear(tstate);
- }
+ _PyErr_Clear(tstate);
}
}
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]