mirror of
https://github.com/python/cpython.git
synced 2025-08-30 13:38:43 +00:00
gh-126594: Fix typeobject.c wrap_buffer() cast (#126754)
Reject flags smaller than INT_MIN. Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
This commit is contained in:
parent
b3687ad454
commit
84f07c3a4c
2 changed files with 18 additions and 3 deletions
|
@ -4446,6 +4446,21 @@ class TestBufferProtocol(unittest.TestCase):
|
|||
self.assertEqual(_testcapi.PyBuffer_SizeFromFormat(format),
|
||||
struct.calcsize(format))
|
||||
|
||||
@support.cpython_only
|
||||
def test_flags_overflow(self):
|
||||
# gh-126594: Check for integer overlow on large flags
|
||||
try:
|
||||
from _testcapi import INT_MIN, INT_MAX
|
||||
except ImportError:
|
||||
INT_MIN = -(2 ** 31)
|
||||
INT_MAX = 2 ** 31 - 1
|
||||
|
||||
obj = b'abc'
|
||||
for flags in (INT_MIN - 1, INT_MAX + 1):
|
||||
with self.subTest(flags=flags):
|
||||
with self.assertRaises(OverflowError):
|
||||
obj.__buffer__(flags)
|
||||
|
||||
|
||||
class TestPythonBufferProtocol(unittest.TestCase):
|
||||
def test_basic(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue