From 02eae557937627b10bbb9add6a6f4c3dca611ab1 Mon Sep 17 00:00:00 2001 From: qqwqqw689 <114795525+qqwqqw689@users.noreply.github.com> Date: Wed, 6 Nov 2024 15:16:51 +0800 Subject: [PATCH 1/4] fix a error in lexer.c --- Parser/lexer/lexer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Parser/lexer/lexer.c b/Parser/lexer/lexer.c index 8c868593f944c8..20f6469d0e3705 100644 --- a/Parser/lexer/lexer.c +++ b/Parser/lexer/lexer.c @@ -328,8 +328,11 @@ verify_identifier(struct tok_state *tok) } return 0; } + Py_ssize_t invalid = _PyUnicode_ScanIdentifier(s); - if (invalid < 0) { + Py_ssize_t len = PyUnicode_GET_LENGTH(s); + + if (invalid < len) { Py_DECREF(s); tok->done = E_ERROR; return 0; From e0f9ba8cbd06cb5c917b396206b410ebdab04f35 Mon Sep 17 00:00:00 2001 From: qqwqqw689 <114795525+qqwqqw689@users.noreply.github.com> Date: Wed, 6 Nov 2024 18:37:35 +0800 Subject: [PATCH 2/4] Update Parser/lexer/lexer.c Co-authored-by: Tomas R. --- Parser/lexer/lexer.c | 1 - 1 file changed, 1 deletion(-) diff --git a/Parser/lexer/lexer.c b/Parser/lexer/lexer.c index 20f6469d0e3705..49281952039377 100644 --- a/Parser/lexer/lexer.c +++ b/Parser/lexer/lexer.c @@ -328,7 +328,6 @@ verify_identifier(struct tok_state *tok) } return 0; } - Py_ssize_t invalid = _PyUnicode_ScanIdentifier(s); Py_ssize_t len = PyUnicode_GET_LENGTH(s); From 54cc4bc6d067bcd12919b542d069c6b05c22978e Mon Sep 17 00:00:00 2001 From: qqwqqw689 <114795525+qqwqqw689@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:24:26 +0800 Subject: [PATCH 3/4] Update lexer.c --- Parser/lexer/lexer.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Parser/lexer/lexer.c b/Parser/lexer/lexer.c index 49281952039377..08d94b9f54e2ad 100644 --- a/Parser/lexer/lexer.c +++ b/Parser/lexer/lexer.c @@ -329,13 +329,7 @@ verify_identifier(struct tok_state *tok) return 0; } Py_ssize_t invalid = _PyUnicode_ScanIdentifier(s); - Py_ssize_t len = PyUnicode_GET_LENGTH(s); - if (invalid < len) { - Py_DECREF(s); - tok->done = E_ERROR; - return 0; - } assert(PyUnicode_GET_LENGTH(s) > 0); if (invalid < PyUnicode_GET_LENGTH(s)) { Py_UCS4 ch = PyUnicode_READ_CHAR(s, invalid); From ade12b9ad32ae55eef7184d6e2fccfd05b4510cd Mon Sep 17 00:00:00 2001 From: Pablo Galindo Salgado Date: Wed, 1 Jan 2025 20:45:12 +0000 Subject: [PATCH 4/4] Update Parser/lexer/lexer.c --- Parser/lexer/lexer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Parser/lexer/lexer.c b/Parser/lexer/lexer.c index 08d94b9f54e2ad..dbbb94a407c81d 100644 --- a/Parser/lexer/lexer.c +++ b/Parser/lexer/lexer.c @@ -329,7 +329,7 @@ verify_identifier(struct tok_state *tok) return 0; } Py_ssize_t invalid = _PyUnicode_ScanIdentifier(s); - + assert(invalid >= 0); assert(PyUnicode_GET_LENGTH(s) > 0); if (invalid < PyUnicode_GET_LENGTH(s)) { Py_UCS4 ch = PyUnicode_READ_CHAR(s, invalid);