summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2018-02-05 13:33:21 (GMT)
committerdgp <dgp@users.sourceforge.net>2018-02-05 13:33:21 (GMT)
commitda7f77f96f74cf57e80421226d7bf1e93d776f58 (patch)
treeaf58e17c4ba348ad95f9ade8819151100c6c0c06
parent98887219c2dcf8b1fd6debaf3c716f6a809d2a84 (diff)
downloadtcl-da7f77f96f74cf57e80421226d7bf1e93d776f58.zip
tcl-da7f77f96f74cf57e80421226d7bf1e93d776f58.tar.gz
tcl-da7f77f96f74cf57e80421226d7bf1e93d776f58.tar.bz2
Improved overflow prevention.
-rw-r--r--generic/tclStringObj.c4
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) {