summaryrefslogtreecommitdiffstats
path: root/generic/tclStringObj.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-03-30 12:13:01 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-03-30 12:13:01 (GMT)
commitb1a8dc460f2e7f8a7ff436f52729f729ead3b92d (patch)
treeb438ec0e5fe643dccf1a5b25468da0140fedbde2 /generic/tclStringObj.c
parent60e9b38dfbeb8b382fd60528363fe726331ac4db (diff)
downloadtcl-b1a8dc460f2e7f8a7ff436f52729f729ead3b92d.zip
tcl-b1a8dc460f2e7f8a7ff436f52729f729ead3b92d.tar.gz
tcl-b1a8dc460f2e7f8a7ff436f52729f729ead3b92d.tar.bz2
Fix limit-checking on first/last arguments for Tcl_GetRange(). Was not correctly forward-merged from core-8-branch (there it's correct)
Diffstat (limited to 'generic/tclStringObj.c')
-rw-r--r--generic/tclStringObj.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c
index 2755cf6..da3f8ee 100644
--- a/generic/tclStringObj.c
+++ b/generic/tclStringObj.c
@@ -674,9 +674,6 @@ Tcl_GetRange(
if (first == TCL_INDEX_NONE) {
first = TCL_INDEX_START;
}
- if (last + 2 <= first + 1) {
- return Tcl_NewObj();
- }
/*
* Optimize the case where we're really dealing with a bytearray object
@@ -689,7 +686,7 @@ Tcl_GetRange(
if (last >= length) {
last = length - 1;
}
- if (last < first) {
+ if (last + 1 < first + 1) {
TclNewObj(newObjPtr);
return newObjPtr;
}
@@ -715,7 +712,7 @@ Tcl_GetRange(
if (last >= stringPtr->numChars) {
last = stringPtr->numChars - 1;
}
- if (last < first) {
+ if (last + 1 < first + 1) {
TclNewObj(newObjPtr);
return newObjPtr;
}
@@ -736,7 +733,7 @@ Tcl_GetRange(
if (last >= stringPtr->numChars) {
last = stringPtr->numChars - 1;
}
- if (last < first) {
+ if (last + 1 < first + 1) {
TclNewObj(newObjPtr);
return newObjPtr;
}