gh-132909: handle overflow for 'K' format in do_mkvalue (#132911)

This commit is contained in:
Bénédikt Tran 2025-04-25 13:02:57 +02:00 committed by GitHub
parent de6482eda3
commit 3fa024dec3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 6 additions and 1 deletions

View file

@ -669,6 +669,8 @@ Building values
``L`` (:class:`int`) [long long]
Convert a C :c:expr:`long long` to a Python integer object.
.. _capi-py-buildvalue-format-K:
``K`` (:class:`int`) [unsigned long long]
Convert a C :c:expr:`unsigned long long` to a Python integer object.

View file

@ -0,0 +1,2 @@
Fix an overflow when handling the :ref:`K <capi-py-buildvalue-format-K>` format
in :c:func:`Py_BuildValue`. Patch by Bénédikt Tran.

View file

@ -321,7 +321,8 @@ do_mkvalue(const char **p_format, va_list *p_va)
return PyLong_FromLongLong((long long)va_arg(*p_va, long long));
case 'K':
return PyLong_FromUnsignedLongLong((long long)va_arg(*p_va, unsigned long long));
return PyLong_FromUnsignedLongLong(
va_arg(*p_va, unsigned long long));
case 'u':
{