summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2020-09-02 16:20:20 (GMT)
committerdgp <dgp@users.sourceforge.net>2020-09-02 16:20:20 (GMT)
commitde2793025fcbb875f0ac1e7efed956bbfedca273 (patch)
tree8eba11fbe31ea2508b92ea476bd053c13d005b5d
parent7cb8eb7218804199155464c4441c47b8a2fbf677 (diff)
downloadtcl-de2793025fcbb875f0ac1e7efed956bbfedca273.zip
tcl-de2793025fcbb875f0ac1e7efed956bbfedca273.tar.gz
tcl-de2793025fcbb875f0ac1e7efed956bbfedca273.tar.bz2
Different fix where existing protection tools for nesting bytecode execution
calls are used. This solution suggests there may be many more places needing protection. Any routine that gets passed "interp" is a possibility.
-rw-r--r--generic/tclExecute.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 0f1c2cc..70ed54a 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -5298,10 +5298,13 @@ TEBCresume(
*/
length = Tcl_GetCharLength(valuePtr);
+ DECACHE_STACK_INFO();
if (TclGetIntForIndexM(interp, value2Ptr, length-1, &index)!=TCL_OK) {
+ CACHE_STACK_INFO();
TRACE_ERROR(interp);
goto gotError;
}
+ CACHE_STACK_INFO();
if ((index < 0) || (index >= length)) {
TclNewObj(objResultPtr);