From b1a8dc460f2e7f8a7ff436f52729f729ead3b92d Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 30 Mar 2022 12:13:01 +0000 Subject: Fix limit-checking on first/last arguments for Tcl_GetRange(). Was not correctly forward-merged from core-8-branch (there it's correct) --- generic/tclStringObj.c | 9 +++------ 1 file 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; } -- cgit v0.12