diff options
author | dgp <dgp@noemail.net> | 2012-02-09 14:57:14 (GMT) |
---|---|---|
committer | dgp <dgp@noemail.net> | 2012-02-09 14:57:14 (GMT) |
commit | 3ea24a35037f84f573ce72b735926dc744196e6d (patch) | |
tree | f7303d89da1537038ab6344ab79bf0542112cf5f /generic/tclStringObj.c | |
parent | 286d3aa4aa0cdddbdd50110aa5ece2458b5fe574 (diff) | |
parent | 3a5d39f8eee989cc36e2b6e79791c5a4aab3107f (diff) | |
download | tcl-3ea24a35037f84f573ce72b735926dc744196e6d.zip tcl-3ea24a35037f84f573ce72b735926dc744196e6d.tar.gz tcl-3ea24a35037f84f573ce72b735926dc744196e6d.tar.bz2 |
3484402 Correct Off-By-One error appending unicode. Thanks to Poor Yorick.
Also corrected test for when growth is needed.
FossilOrigin-Name: f57b5ba48d247bced08a60b5638a39036cff4bdf
Diffstat (limited to 'generic/tclStringObj.c')
-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 b5b3674..7005223 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -1308,7 +1308,7 @@ AppendUnicodeToUnicodeRep(objPtr, unicode, appendNumChars) numChars = stringPtr->numChars + appendNumChars; stringCheckLimits(numChars); - if (STRING_UALLOC(numChars) >= stringPtr->uallocated) { + if (STRING_UALLOC(numChars) > stringPtr->uallocated) { /* * Protect against case where unicode points into the existing * stringPtr->unicode array. Force it to follow any relocations @@ -1316,7 +1316,7 @@ AppendUnicodeToUnicodeRep(objPtr, unicode, appendNumChars) */ int offset = -1; if (unicode >= stringPtr->unicode && unicode <= stringPtr->unicode - + 1 + stringPtr->uallocated / sizeof(Tcl_UniChar)) { + + stringPtr->uallocated / sizeof(Tcl_UniChar)) { offset = unicode - stringPtr->unicode; } |