check(br"\8", b"\\8")
with self.assertWarns(DeprecationWarning):
check(br"\9", b"\\9")
+ with self.assertWarns(DeprecationWarning):
+ check(b"\\\xfa", b"\\\xfa")
def test_errors(self):
decode = codecs.escape_decode
check(br"\8", "\\8")
with self.assertWarns(DeprecationWarning):
check(br"\9", "\\9")
+ with self.assertWarns(DeprecationWarning):
+ check(b"\\\xfa", "\\\xfa")
def test_decode_errors(self):
decode = codecs.unicode_escape_decode
--- /dev/null
+Fixed OverflowError in the 'unicode-escape' codec and in
+codecs.escape_decode() when decode an escaped non-ascii byte.
if (first_invalid_escape != NULL) {
if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
"invalid escape sequence '\\%c'",
- *first_invalid_escape) < 0) {
+ (unsigned char)*first_invalid_escape) < 0) {
Py_DECREF(result);
return NULL;
}
if (first_invalid_escape != NULL) {
if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
"invalid escape sequence '\\%c'",
- *first_invalid_escape) < 0) {
+ (unsigned char)*first_invalid_escape) < 0) {
Py_DECREF(result);
return NULL;
}
static int
warn_invalid_escape_sequence(struct compiling *c, const node *n,
- char first_invalid_escape_char)
+ unsigned char first_invalid_escape_char)
{
PyObject *msg = PyUnicode_FromFormat("invalid escape sequence \\%c",
first_invalid_escape_char);