diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2011-09-16 08:12:48 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2011-09-16 08:12:48 (GMT) |
commit | 679c72e5a2c14ab53b227e058c4ef06edde6b7a4 (patch) | |
tree | b28a3a30c684e4377f39e18d3b4689891cab876b /generic/tclInterp.c | |
parent | fe0e5c84250f9e45fcbf320d121a961c767b3b5a (diff) | |
parent | ef09f86d39a751b46143aa33f2ee808b31a6a984 (diff) | |
download | tcl-679c72e5a2c14ab53b227e058c4ef06edde6b7a4.zip tcl-679c72e5a2c14ab53b227e058c4ef06edde6b7a4.tar.gz tcl-679c72e5a2c14ab53b227e058c4ef06edde6b7a4.tar.bz2 |
merge trunk to feature branchtip_388_impl
Diffstat (limited to 'generic/tclInterp.c')
-rw-r--r-- | generic/tclInterp.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/generic/tclInterp.c b/generic/tclInterp.c index a156a57..5b6d14f 100644 --- a/generic/tclInterp.c +++ b/generic/tclInterp.c @@ -4345,6 +4345,19 @@ SlaveCommandLimitCmd( ScriptLimitCallback *limitCBPtr; Tcl_HashEntry *hPtr; + /* + * First, ensure that we are not reading or writing the calling + * interpreter's limits; it may only manipulate its children. Note that + * the low level API enforces this with Tcl_Panic, which we want to + * avoid. [Bug 3398794] + */ + + if (interp == slaveInterp) { + Tcl_AppendResult(interp, + "limits on current interpreter inaccessible", NULL); + return TCL_ERROR; + } + if (objc == consumedObjc) { Tcl_Obj *dictPtr; @@ -4519,6 +4532,19 @@ SlaveTimeLimitCmd( ScriptLimitCallback *limitCBPtr; Tcl_HashEntry *hPtr; + /* + * First, ensure that we are not reading or writing the calling + * interpreter's limits; it may only manipulate its children. Note that + * the low level API enforces this with Tcl_Panic, which we want to + * avoid. [Bug 3398794] + */ + + if (interp == slaveInterp) { + Tcl_AppendResult(interp, + "limits on current interpreter inaccessible", NULL); + return TCL_ERROR; + } + if (objc == consumedObjc) { Tcl_Obj *dictPtr; |