summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2018-02-05 13:41:26 (GMT)
committerdgp <dgp@users.sourceforge.net>2018-02-05 13:41:26 (GMT)
commit3be49723fced40ef581ccd12dbeb35b8cf346b12 (patch)
tree3a2d7090426a07ba28bcf64a800bd88943d66d8a
parentda7f77f96f74cf57e80421226d7bf1e93d776f58 (diff)
downloadtcl-3be49723fced40ef581ccd12dbeb35b8cf346b12.zip
tcl-3be49723fced40ef581ccd12dbeb35b8cf346b12.tar.gz
tcl-3be49723fced40ef581ccd12dbeb35b8cf346b12.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 8437555..c3a0192 100644
--- a/generic/tclStringObj.c
+++ b/generic/tclStringObj.c
@@ -190,8 +190,8 @@ GrowUnicodeBuffer(
* Subsequent appends - apply the growth algorithm.
*/
- attempt = 2 * needed;
- if (attempt >= 0 && attempt <= STRING_MAXCHARS) {
+ if (needed <= STRING_MAXCHARS / 2) {
+ attempt = 2 * needed;
ptr = stringAttemptRealloc(stringPtr, attempt);
}
if (ptr == NULL) {