Skip to content

Commit f2f30c4

Browse files
[3.13] gh-134411: assert PyLong_FromLong(x) != NULL when x is known to be small (GH-134415) (#136911)
gh-134411: assert `PyLong_FromLong(x) != NULL` when `x` is known to be small (GH-134415) Since `PyLong_From Long(PY_MONITORING_DEBUGGER_ID)` falls to `small_int` case and can't return `NULL`. Added `assert`s for extra confidence. #134411 (comment) (cherry picked from commit cf19b64) Co-authored-by: Sergey Muraviov <smurav@mail.ru>
1 parent 3ee46cc commit f2f30c4

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

Python/instrumentation.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2448,18 +2448,22 @@ PyObject *_Py_CreateMonitoringObject(void)
24482448
err = PyObject_SetAttrString(events, "NO_EVENTS", _PyLong_GetZero());
24492449
if (err) goto error;
24502450
PyObject *val = PyLong_FromLong(PY_MONITORING_DEBUGGER_ID);
2451+
assert(val != NULL); /* Can't return NULL because the int is small. */
24512452
err = PyObject_SetAttrString(mod, "DEBUGGER_ID", val);
24522453
Py_DECREF(val);
24532454
if (err) goto error;
24542455
val = PyLong_FromLong(PY_MONITORING_COVERAGE_ID);
2456+
assert(val != NULL);
24552457
err = PyObject_SetAttrString(mod, "COVERAGE_ID", val);
24562458
Py_DECREF(val);
24572459
if (err) goto error;
24582460
val = PyLong_FromLong(PY_MONITORING_PROFILER_ID);
2461+
assert(val != NULL);
24592462
err = PyObject_SetAttrString(mod, "PROFILER_ID", val);
24602463
Py_DECREF(val);
24612464
if (err) goto error;
24622465
val = PyLong_FromLong(PY_MONITORING_OPTIMIZER_ID);
2466+
assert(val != NULL);
24632467
err = PyObject_SetAttrString(mod, "OPTIMIZER_ID", val);
24642468
Py_DECREF(val);
24652469
if (err) goto error;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy