Bug report
Bug description:
Found when implementing #123343. We have:
int
PyUnicodeEncodeError_GetStart(PyObject *exc, Py_ssize_t *start)
{
Py_ssize_t size;
PyObject *obj = get_unicode(((PyUnicodeErrorObject *)exc)->object,
"object");
if (!obj)
return -1;
*start = ((PyUnicodeErrorObject *)exc)->start;
size = PyUnicode_GET_LENGTH(obj);
if (*start<0)
*start = 0; /*XXX check for values <0*/
if (*start>=size)
*start = size-1;
Py_DECREF(obj);
return 0;
}
The line *start = size-1 might set start to -1 when start = 0, in which case this leads to assertion failures when the index is used normally.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
Bug report
Bug description:
Found when implementing #123343. We have:
The line
*start = size-1might setstartto-1whenstart = 0, in which case this leads to assertion failures when the index is used normally.CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
UnicodeError.__str__#124935UnicodeError.__str__(GH-124935) #125098UnicodeError.__str__(GH-124935) #125099startandendvalues inPyUnicodeErrorObject#123380