diff options
| author | dgp <dgp@users.sourceforge.net> | 2018-02-05 13:33:21 (GMT) |
|---|---|---|
| committer | dgp <dgp@users.sourceforge.net> | 2018-02-05 13:33:21 (GMT) |
| commit | da7f77f96f74cf57e80421226d7bf1e93d776f58 (patch) | |
| tree | af58e17c4ba348ad95f9ade8819151100c6c0c06 | |
| parent | 98887219c2dcf8b1fd6debaf3c716f6a809d2a84 (diff) | |
| download | tcl-da7f77f96f74cf57e80421226d7bf1e93d776f58.zip tcl-da7f77f96f74cf57e80421226d7bf1e93d776f58.tar.gz tcl-da7f77f96f74cf57e80421226d7bf1e93d776f58.tar.bz2 | |
Improved overflow prevention.
| -rw-r--r-- | generic/tclStringObj.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index ae75e44..8437555 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -140,8 +140,8 @@ GrowStringBuffer( objPtr->bytes = NULL; } if (flag == 0 || stringPtr->allocated > 0) { - attempt = 2 * needed; - if (attempt >= 0) { + if (needed <= INT_MAX / 2) { + attempt = 2 * needed; ptr = attemptckrealloc(objPtr->bytes, attempt + 1); } if (ptr == NULL) { |
