diff options
author | griffin <briang42@easystreet.net> | 2022-09-29 16:10:07 (GMT) |
---|---|---|
committer | griffin <briang42@easystreet.net> | 2022-09-29 16:10:07 (GMT) |
commit | bec96305308d0c234215d25b194f1ff8417dc8b4 (patch) | |
tree | a6a87e6d8c544f1ce5315090b52d0e6bcc73267b | |
parent | 42bd6877bcc8794524e5be946458a4427994b7a6 (diff) | |
download | tcl-bec96305308d0c234215d25b194f1ff8417dc8b4.zip tcl-bec96305308d0c234215d25b194f1ff8417dc8b4.tar.gz tcl-bec96305308d0c234215d25b194f1ff8417dc8b4.tar.bz2 |
Fix bug-99e834bf33
-rw-r--r-- | generic/tclExecute.c | 2 | ||||
-rw-r--r-- | tests/lseq.test | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 5f29bfa..fa0dfa2 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -4938,7 +4938,7 @@ TEBCresume( /* Decode end-offset index values. */ - index = TclIndexDecode(opnd, length); + index = TclIndexDecode(opnd, length-1); /* Compute value @ index */ if (index >= 0 && index < length) { diff --git a/tests/lseq.test b/tests/lseq.test index e05b32d..518a7bb 100644 --- a/tests/lseq.test +++ b/tests/lseq.test @@ -489,9 +489,19 @@ test lseq-4.4 {lseq corner case} -body { lappend res $s $e } eval $tcmd +} -cleanup { + unset res } -result {0 10 1 {max length of a Tcl list exceeded} 1 {max length of a Tcl list exceeded} 0 10 0 2147483638} +# Ticket 99e834bf33 - lseq, lindex end off by one + +test lseq-4.5 {lindex off by one} -body { + lappend res [eval {lindex [lseq 1 4] end}] + lappend res [eval {lindex [lseq 1 4] end-1}] +} -result {4 3} + + # cleanup ::tcltest::cleanupTests return |