summaryrefslogtreecommitdiffstats
path: root/generic/tkEntry.c
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2018-01-28 19:49:55 (GMT)
committerfvogel <fvogelnew1@free.fr>2018-01-28 19:49:55 (GMT)
commit4b52abe83965203f90bb431ba8dc9039165f2646 (patch)
treece722f684017d75bc3ecd694eecfdd54d3d52dbb /generic/tkEntry.c
parent45ee94dff4405aa24cdccccbe00b5bab3d549c43 (diff)
downloadtk-4b52abe83965203f90bb431ba8dc9039165f2646.zip
tk-4b52abe83965203f90bb431ba8dc9039165f2646.tar.gz
tk-4b52abe83965203f90bb431ba8dc9039165f2646.tar.bz2
Fix [5d991b822e]: segmentation violation in TclObjLookupVarEx. Patch from Christian Werner.
Diffstat (limited to 'generic/tkEntry.c')
-rw-r--r--generic/tkEntry.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/generic/tkEntry.c b/generic/tkEntry.c
index 25774cc..678691f 100644
--- a/generic/tkEntry.c
+++ b/generic/tkEntry.c
@@ -3135,8 +3135,8 @@ static char *
EntryTextVarProc(
ClientData clientData, /* Information about button. */
Tcl_Interp *interp, /* Interpreter containing variable. */
- const char *name1, /* Not used. */
- const char *name2, /* Not used. */
+ const char *name1, /* Name of variable. */
+ const char *name2, /* Second part of variable name. */
int flags) /* Information about what happened. */
{
Entry *entryPtr = clientData;
@@ -3150,6 +3150,19 @@ EntryTextVarProc(
}
/*
+ * See ticket [5d991b82].
+ */
+
+ if (entryPtr->textVarName == NULL) {
+ if (!(flags & TCL_INTERP_DESTROYED)) {
+ Tcl_UntraceVar2(interp, name1, name2,
+ TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS,
+ EntryTextVarProc, clientData);
+ }
+ return NULL;
+ }
+
+ /*
* If the variable is unset, then immediately recreate it unless the whole
* interpreter is going away.
*/