diff options
author | dgp <dgp@users.sourceforge.net> | 2011-04-12 20:04:11 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2011-04-12 20:04:11 (GMT) |
commit | 37b1332c5e9a5098b66e6775c9073680f9cf94fa (patch) | |
tree | 31ff3921f38c2e5d92fec768e544fc37c2ab5333 | |
parent | 1eb966fd80e4ebb3ff65e00e5f23a682790ab385 (diff) | |
download | tcl-37b1332c5e9a5098b66e6775c9073680f9cf94fa.zip tcl-37b1332c5e9a5098b66e6775c9073680f9cf94fa.tar.gz tcl-37b1332c5e9a5098b66e6775c9073680f9cf94fa.tar.bz2 |
Repair corruption in [string reverse] when string rep invalidation failed
to also reset the bytes allocated for string rep to zero [Bug 3285472].
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | generic/tclStringObj.c | 1 | ||||
-rw-r--r-- | tests/string.test | 5 | ||||
-rw-r--r--[-rwxr-xr-x] | tools/configure | 0 |
4 files changed, 12 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2011-04-12 Don Porter <dgp@users.sourceforge.net> + + * generic/tclStringObj.c: Repair corruption in [string reverse] + * tests/string.test: when string rep invalidation failed to also + reset the bytes allocated for string rep to zero [Bug 3285472]. + 2011-04-12 Venkat Iyer <venkat@comit.com> * library/tzdata/Atlantic/Stanley: Update to Olson tzdata2011f diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index 7437ee4..17bed1b 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -2758,6 +2758,7 @@ TclStringObjReverse( source[i++] = tmp; } Tcl_InvalidateStringRep(objPtr); + stringPtr->allocated = 0; return objPtr; } diff --git a/tests/string.test b/tests/string.test index 6b00f3a..cddfe4c 100644 --- a/tests/string.test +++ b/tests/string.test @@ -1608,6 +1608,11 @@ test string-24.11 {string reverse command - corner case} { set y \udead string reverse $x$y } \udead\ubeef +test string-24.12 {string reverse command - corner case} { + set x \ubeef + set y \udead + string is ascii [string reverse $x$y] +} 0 test string-25.1 {string is list} { string is list {a b c} diff --git a/tools/configure b/tools/configure index 98b5867..98b5867 100755..100644 --- a/tools/configure +++ b/tools/configure |