From c4f54fdfaabb269420eeb194a63f48641fb167e2 Mon Sep 17 00:00:00 2001 From: Guilherme Polo Date: Sat, 7 Mar 2009 01:51:48 +0000 Subject: [PATCH] Merged revisions 70218-70219 via svnmerge from svn+ssh://pythondev/python/trunk ........ r70218 | guilherme.polo | 2009-03-06 22:19:12 -0300 (Fri, 06 Mar 2009) | 1 line Fixed issue #5193: Guarantee that Tkinter.Text.search returns a string. ........ r70219 | guilherme.polo | 2009-03-06 22:47:49 -0300 (Fri, 06 Mar 2009) | 4 lines Fixed issue #4792: Prevent a segfault in _tkinter by using the guaranteed to be safe interp argument given to the PythonCmd in place of the Tcl interpreter taken from a PythonCmd_ClientData. ........ --- Lib/lib-tk/Tkinter.py | 2 +- Misc/NEWS | 6 ++++++ Modules/_tkinter.c | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py index fded2491d55..825e58dd2bd 100644 --- a/Lib/lib-tk/Tkinter.py +++ b/Lib/lib-tk/Tkinter.py @@ -3046,7 +3046,7 @@ class Text(Widget): args.append(pattern) args.append(index) if stopindex: args.append(stopindex) - return self.tk.call(tuple(args)) + return str(self.tk.call(tuple(args))) def see(self, index): """Scroll such that the character at INDEX is visible.""" self.tk.call(self._w, 'see', index) diff --git a/Misc/NEWS b/Misc/NEWS index 41fff2995a7..8d6b108d01c 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -89,6 +89,12 @@ Core and Builtins Library ------- +- Issue #4792: Prevent a segfault in _tkinter by using the + guaranteed to be safe interp argument given to the PythonCmd in place of + the Tcl interpreter taken from a PythonCmd_ClientData. + +- Issue #5193: Guarantee that Tkinter.Text.search returns a string. + - Issue #5385: Fixed mmap crash after resize failure on windows. - Issue #5179: Fixed subprocess handle leak on failure on windows. diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index d13690d360a..83501bfd74a 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -2030,7 +2030,7 @@ PythonCmd(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) return PythonCmd_Error(interp); } else { - Tcl_SetObjResult(Tkapp_Interp(self), obj_res); + Tcl_SetObjResult(interp, obj_res); rv = TCL_OK; }