mirror of
https://github.com/python/cpython.git
synced 2025-08-19 16:20:59 +00:00
Backport 55874:
Fix a bug when there was a newline in the string expandtabs was called on. This also catches another condition that can overflow.
This commit is contained in:
parent
11c5275c61
commit
8355dd5806
3 changed files with 21 additions and 4 deletions
|
@ -5701,7 +5701,8 @@ unicode_expandtabs(PyUnicodeObject *self, PyObject *args)
|
|||
if (tabsize > 0) {
|
||||
j += tabsize - (j % tabsize);
|
||||
if (old_j > j) {
|
||||
PyErr_SetString(PyExc_OverflowError, "new string is too long");
|
||||
PyErr_SetString(PyExc_OverflowError,
|
||||
"new string is too long");
|
||||
return NULL;
|
||||
}
|
||||
old_j = j;
|
||||
|
@ -5711,7 +5712,12 @@ unicode_expandtabs(PyUnicodeObject *self, PyObject *args)
|
|||
j++;
|
||||
if (*p == '\n' || *p == '\r') {
|
||||
i += j;
|
||||
j = 0;
|
||||
old_j = j = 0;
|
||||
if (i < 0) {
|
||||
PyErr_SetString(PyExc_OverflowError,
|
||||
"new string is too long");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue