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)