From fc130c47daa715d60d8925c478a96d5083e47b6a Mon Sep 17 00:00:00 2001 From: Illia Volochii Date: Fri, 28 Jul 2023 16:39:54 +0300 Subject: [PATCH] gh-102509: Start initializing `ob_digit` of `_PyLongValue` (GH-102510) --- .../Security/2023-03-07-21-46-29.gh-issue-102509.5ouaH_.rst | 2 ++ Objects/longobject.c | 3 +++ 2 files changed, 5 insertions(+) create mode 100644 Misc/NEWS.d/next/Security/2023-03-07-21-46-29.gh-issue-102509.5ouaH_.rst diff --git a/Misc/NEWS.d/next/Security/2023-03-07-21-46-29.gh-issue-102509.5ouaH_.rst b/Misc/NEWS.d/next/Security/2023-03-07-21-46-29.gh-issue-102509.5ouaH_.rst new file mode 100644 index 00000000000..d1a8e8b5a8d --- /dev/null +++ b/Misc/NEWS.d/next/Security/2023-03-07-21-46-29.gh-issue-102509.5ouaH_.rst @@ -0,0 +1,2 @@ +Start initializing ``ob_digit`` during creation of :c:type:`PyLongObject` +objects. Patch by Illia Volochii. diff --git a/Objects/longobject.c b/Objects/longobject.c index 5fca55e5c3a..5d9b4138614 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -163,6 +163,9 @@ _PyLong_New(Py_ssize_t size) } _PyLong_SetSignAndDigitCount(result, size != 0, size); _PyObject_Init((PyObject*)result, &PyLong_Type); + /* The digit has to be initialized explicitly to avoid + * use-of-uninitialized-value. */ + result->long_value.ob_digit[0] = 0; return result; }