hugecount3 = '{}i{}q'.format(sys.maxsize // 4, sys.maxsize // 8)
self.assertRaises(struct.error, struct.calcsize, hugecount3)
+ hugecount4 = '{}?s'.format(sys.maxsize)
+ self.assertRaises(struct.error, struct.calcsize, hugecount4)
+
+ hugecount5 = '{}?p'.format(sys.maxsize)
+ self.assertRaises(struct.error, struct.calcsize, hugecount5)
+
def test_trailing_counter(self):
store = array.array('b', b' '*100)
switch (c) {
case 's': _Py_FALLTHROUGH;
- case 'p': len++; ncodes++; break;
+ case 'p':
+ if (len == PY_SSIZE_T_MAX) {
+ goto overflow;
+ }
+ len++;
+ ncodes++;
+ break;
case 'x': break;
default:
if (num > PY_SSIZE_T_MAX - len) {