From 196bfbe531ff0bb8488dde587ee9ffc46a8ffe55 Mon Sep 17 00:00:00 2001 From: stanton Date: Fri, 9 Jul 1999 02:11:56 +0000 Subject: * tests/string.test: * generic/tclCmdMZ.c: Fixed bug in string range bounds checking code. --- generic/tclCmdMZ.c | 6 +++--- tests/string.test | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c index ab6387d..db92f19 100644 --- a/generic/tclCmdMZ.c +++ b/generic/tclCmdMZ.c @@ -13,7 +13,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclCmdMZ.c,v 1.17 1999/07/02 19:59:38 welch Exp $ + * RCS: @(#) $Id: tclCmdMZ.c,v 1.18 1999/07/09 02:11:56 stanton Exp $ */ #include "tclInt.h" @@ -1648,8 +1648,8 @@ Tcl_StringObjCmd(dummy, interp, objc, objv) if (first < 0) { first = 0; } - if (last >= length1 - 1) { - last = length1 - 1; + if (last >= length2) { + last = length2; } if (last >= first) { resultPtr = Tcl_GetRange(objv[2], first, last); diff --git a/tests/string.test b/tests/string.test index 4cee4d3..951fd46 100644 --- a/tests/string.test +++ b/tests/string.test @@ -11,7 +11,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: string.test,v 1.18 1999/07/01 17:36:19 jenn Exp $ +# RCS: @(#) $Id: string.test,v 1.19 1999/07/09 02:11:56 stanton Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest @@ -835,6 +835,9 @@ test string-12.19 {string range, bytearray object} { set r2 [string range $b 1 6] string compare $r1 $r2 } 0 +test string-12.20 {string range, out of bounds indices} { + string range \u00ff 0 1 +} \u00ff test string-13.1 {string repeat} { list [catch {string repeat} msg] $msg -- cgit v0.12