diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_struct.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Lib/test/test_struct.py b/Lib/test/test_struct.py index 02d50b2..b2a5f42 100644 --- a/Lib/test/test_struct.py +++ b/Lib/test/test_struct.py @@ -599,6 +599,16 @@ class StructTest(unittest.TestCase): 'offset -11 out of range for 10-byte buffer'): struct.pack_into('<B', byte_list, -11, 123) + def test_boundary_error_message_with_large_offset(self): + # Test overflows cause by large offset and value size (issue 30245) + regex = ( + r'pack_into requires a buffer of at least ' + str(sys.maxsize + 4) + + r' bytes for packing 4 bytes at offset ' + str(sys.maxsize) + + r' \(actual buffer size is 10\)' + ) + with self.assertRaisesRegex(struct.error, regex): + struct.pack_into('<I', bytearray(10), sys.maxsize, 1) + def test_issue29802(self): # When the second argument of struct.unpack() was of wrong type # the Struct object was decrefed twice and the reference to |