mirror of https://github.com/python/cpython
Merged revisions 81820 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r81820 | benjamin.peterson | 2010-06-07 17:23:23 -0500 (Mon, 07 Jun 2010) | 1 line correctly overflow when indexes are too large ........
This commit is contained in:
parent
5b92772e24
commit
59a1b2f732
|
@ -681,6 +681,9 @@ class UnicodeTest(string_tests.CommonTest,
|
|||
self.assertRaises(IndexError, "{:}".format)
|
||||
self.assertRaises(IndexError, "{:s}".format)
|
||||
self.assertRaises(IndexError, "{}".format)
|
||||
big = "23098475029384702983476098230754973209482573"
|
||||
self.assertRaises(ValueError, ("{" + big + "}").format)
|
||||
self.assertRaises(ValueError, ("{[" + big + "]}").format, [0])
|
||||
|
||||
# issue 6089
|
||||
self.assertRaises(ValueError, "{0[0]x}".format, [None])
|
||||
|
|
|
@ -15,6 +15,9 @@ Core and Builtins
|
|||
- Issue #8837: Remove "O?" format of PyArg_Parse*() functions. The format is no
|
||||
used anymore and it was never documented.
|
||||
|
||||
- In the str.format(), raise a ValueError when either indexes to arguments are
|
||||
too large.
|
||||
|
||||
- Issue #2844: Make int('42', n) consistently raise ValueError for
|
||||
invalid integers n (including n = -909).
|
||||
|
||||
|
|
|
@ -373,6 +373,8 @@ FieldNameIterator_next(FieldNameIterator *self, int *is_attribute,
|
|||
if (_FieldNameIterator_item(self, name) == 0)
|
||||
return 0;
|
||||
*name_idx = get_integer(name);
|
||||
if (*name_idx == -1 && PyErr_Occurred())
|
||||
return 0;
|
||||
break;
|
||||
default:
|
||||
/* Invalid character follows ']' */
|
||||
|
@ -429,6 +431,8 @@ field_name_split(STRINGLIB_CHAR *ptr, Py_ssize_t len, SubString *first,
|
|||
|
||||
/* see if "first" is an integer, in which case it's used as an index */
|
||||
*first_idx = get_integer(first);
|
||||
if (*first_idx == -1 && PyErr_Occurred())
|
||||
return 0;
|
||||
|
||||
field_name_is_empty = first->ptr >= first->end;
|
||||
|
||||
|
|
Loading…
Reference in New Issue