diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2011-03-07 22:23:11 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2011-03-07 22:23:11 (GMT) |
commit | 7b1f9159604d4005f984eb3f32a4be126e5a4834 (patch) | |
tree | 9530bd9ba3ed58012f99ee81e59968a409052318 | |
parent | 259e45cecd536335e791f739db9e4c1c462c2eea (diff) | |
download | tcl-7b1f9159604d4005f984eb3f32a4be126e5a4834.zip tcl-7b1f9159604d4005f984eb3f32a4be126e5a4834.tar.gz tcl-7b1f9159604d4005f984eb3f32a4be126e5a4834.tar.bz2 |
Fix [Bug 3166410]: "out of stack space" on AIX
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | unix/tclUnixInit.c | 10 |
2 files changed, 14 insertions, 0 deletions
@@ -1,3 +1,7 @@ +2011-03-07 Jan Nijtmans <nijtmans@users.sf.net> + + * unix/tclUnixInit: + 2011-03-06 Don Porter <dgp@users.sourceforge.net> * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() calls diff --git a/unix/tclUnixInit.c b/unix/tclUnixInit.c index a798ccb..5111746 100644 --- a/unix/tclUnixInit.c +++ b/unix/tclUnixInit.c @@ -1092,9 +1092,19 @@ TclpGetCStackParams( if (stackGrowsDown) { tsdPtr->stackBound = (int *) ((char *)tsdPtr->outerVarPtr - stackSize); + if (tsdPtr->stackBound > tsdPtr->outerVarPtr) { + /* Overflow, that should never happen, just set it to NULL. + * See [Bug #3166410] */ + tsdPtr->stackBound = NULL; + } } else { tsdPtr->stackBound = (int *) ((char *)tsdPtr->outerVarPtr + stackSize); + if (tsdPtr->stackBound < tsdPtr->outerVarPtr) { + /* Overflow, that should never happen, just set it to NULL. + * See [Bug #3166410] */ + tsdPtr->stackBound = NULL; + } } } |