[Python-checkins] [3.11] gh-105375: Improve error handling in compiler_enter_scope() (#105494) (#105582)
erlend-aasland
webhook-mailer at python.org
Fri Jun 9 13:36:14 EDT 2023
https://github.com/python/cpython/commit/90e357bc8a1cafa2ddbea98949e6f6a4d7d01475
commit: 90e357bc8a1cafa2ddbea98949e6f6a4d7d01475
branch: 3.11
author: Erlend E. Aasland <erlend.aasland at protonmail.com>
committer: erlend-aasland <erlend.aasland at protonmail.com>
date: 2023-06-09T17:36:06Z
summary:
[3.11] gh-105375: Improve error handling in compiler_enter_scope() (#105494) (#105582)
(cherry picked from commit 6c832ddcf28187f86100c790afb16a0223d945d0)
Co-authored-by: Erlend E. Aasland <erlend.aasland at protonmail.com>
files:
A Misc/NEWS.d/next/Core and Builtins/2023-06-08-09-54-37.gh-issue-105375.kqKT3E.rst
M Python/compile.c
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-06-08-09-54-37.gh-issue-105375.kqKT3E.rst b/Misc/NEWS.d/next/Core and Builtins/2023-06-08-09-54-37.gh-issue-105375.kqKT3E.rst
new file mode 100644
index 0000000000000..b4d3a1a5a3ced
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2023-06-08-09-54-37.gh-issue-105375.kqKT3E.rst
@@ -0,0 +1 @@
+Fix bug in the compiler where an exception could end up being overwritten.
diff --git a/Python/compile.c b/Python/compile.c
index 5f26da8608a47..558df3fca653e 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1736,8 +1736,12 @@ compiler_enter_scope(struct compiler *c, identifier name,
Py_INCREF(name);
u->u_name = name;
u->u_varnames = list2dict(u->u_ste->ste_varnames);
+ if (!u->u_varnames) {
+ compiler_unit_free(u);
+ return 0;
+ }
u->u_cellvars = dictbytype(u->u_ste->ste_symbols, CELL, 0, 0);
- if (!u->u_varnames || !u->u_cellvars) {
+ if (!u->u_cellvars) {
compiler_unit_free(u);
return 0;
}
More information about the Python-checkins
mailing list