Check for TclError when reading variables. Fixes #807314.
Backported to 2.3.
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 5253a10..02e4feb 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -1647,11 +1647,15 @@
ENTER_TCL
tres = Tcl_GetVar2Ex(Tkapp_Interp(self), name1, name2, flags);
ENTER_OVERLAP
- if (((TkappObject*)self)->wantobjects) {
- res = FromObj(self, tres);
- }
- else {
- res = PyString_FromString(Tcl_GetString(tres));
+ if (tres == NULL) {
+ PyErr_SetString(Tkinter_TclError, Tcl_GetStringResult(Tkapp_Interp(self)));
+ } else {
+ if (((TkappObject*)self)->wantobjects) {
+ res = FromObj(self, tres);
+ }
+ else {
+ res = PyString_FromString(Tcl_GetString(tres));
+ }
}
LEAVE_OVERLAP_TCL
return res;