mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
[3.12] gh-126108: Fix potential null pointer dereference in PySys_AddWarnOptionUnicode
(GH-126118) (#129522)
gh-126108: Fix potential null pointer dereference in `PySys_AddWarnOptionUnicode` (GH-126118)
(cherry picked from commit fad36bf382
)
Co-authored-by: Valery Fedorenko <federicovalenso@gmail.com>
This commit is contained in:
parent
48f08fe6c8
commit
40d7f745e9
2 changed files with 5 additions and 3 deletions
|
@ -0,0 +1 @@
|
|||
Fix a possible ``NULL`` pointer dereference in :c:func:`!PySys_AddWarnOptionUnicode`.
|
|
@ -2653,6 +2653,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;
|
||||
|
@ -2667,11 +2668,11 @@ 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue