bpo-42150: Avoid buffer overflow in the new parser (GH-22978)

This commit is contained in:
Pablo Galindo 2020-10-25 23:03:41 +00:00 committed by GitHub
parent d1a0a960ee
commit e68c67805e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 1 deletions

View File

@ -0,0 +1,2 @@
Fix possible buffer overflow in the new parser when checking for
continuation lines. Patch by Pablo Galindo.

View File

@ -990,7 +990,8 @@ bad_single_statement(Parser *p)
/* Newlines are allowed if preceded by a line continuation character
or if they appear inside a string. */
if (!cur || *(cur - 1) == '\\' || newline_in_string(p, cur)) {
if (!cur || (cur != p->tok->buf && *(cur - 1) == '\\')
|| newline_in_string(p, cur)) {
return 0;
}
char c = *cur;