diff options
| author | dgp <dgp@users.sourceforge.net> | 2011-05-10 16:05:48 (GMT) |
|---|---|---|
| committer | dgp <dgp@users.sourceforge.net> | 2011-05-10 16:05:48 (GMT) |
| commit | f9dece7738d140a66ebb5d47ee85c4d57249258a (patch) | |
| tree | 1ca2feda250662282a8e77080fef123d9256b839 /unix/tclUnixInit.c | |
| parent | b1c2f2c9c6fcb329f1e23f9f5f1ef53c84b01bae (diff) | |
| download | tcl-f9dece7738d140a66ebb5d47ee85c4d57249258a.zip tcl-f9dece7738d140a66ebb5d47ee85c4d57249258a.tar.gz tcl-f9dece7738d140a66ebb5d47ee85c4d57249258a.tar.bz2 | |
Completed patch with mucho comments. Merge 8.5.bug_3173086
Diffstat (limited to 'unix/tclUnixInit.c')
| -rw-r--r-- | unix/tclUnixInit.c | 10 |
1 files changed, 10 insertions, 0 deletions
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; + } } } |
