'offset -11 out of range for 10-byte buffer'):
struct.pack_into('<B', byte_list, -11, 123)
+ 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
+ # deallocated object was left in a cache.
+ with self.assertRaises(TypeError):
+ struct.unpack(b'b', 0)
+ # Shouldn't crash.
+ self.assertEqual(struct.unpack(b'b', b'a'), (b'a'[0],))
+
+
class UnpackIteratorTest(unittest.TestCase):
"""
Tests for iterative unpacking (struct.Struct.iter_unpack).
Library
-------
+- bpo-29802: Fixed reference counting in module-level struct functions when
+ pass arguments of wrong type.
+
- bpo-30070: Fixed leaks and crashes in errors handling in the parser module.
- bpo-22352: Column widths in the output of dis.dis() are now adjusted for