From: Illia Volochii Date: Fri, 28 Jul 2023 13:39:54 +0000 (+0300) Subject: gh-102509: Start initializing `ob_digit` of `_PyLongValue` (GH-102510) X-Git-Tag: v3.13.0a1~1156 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fc130c47daa715d60d8925c478a96d5083e47b6a;p=thirdparty%2FPython%2Fcpython.git gh-102509: Start initializing `ob_digit` of `_PyLongValue` (GH-102510) --- 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 000000000000..d1a8e8b5a8d3 --- /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 5fca55e5c3a2..5d9b41386147 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; }