summaryrefslogtreecommitdiffstats
path: root/generic/tclCmdMZ.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-09-20 20:42:30 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-09-20 20:42:30 (GMT)
commit4590e2d12033ebf1ad82a2b46da552f0638b763a (patch)
tree72f7aa4cfe58d05193183e02f20dac68dd5d800c /generic/tclCmdMZ.c
parent9b0b59d046f223efca4855691ed4f476fa43b1b8 (diff)
downloadtcl-4590e2d12033ebf1ad82a2b46da552f0638b763a.zip
tcl-4590e2d12033ebf1ad82a2b46da552f0638b763a.tar.gz
tcl-4590e2d12033ebf1ad82a2b46da552f0638b763a.tar.bz2
Proposed fix for [c0bc269178], with testcase
Diffstat (limited to 'generic/tclCmdMZ.c')
-rw-r--r--generic/tclCmdMZ.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c
index 3ff9947..53e12c5 100644
--- a/generic/tclCmdMZ.c
+++ b/generic/tclCmdMZ.c
@@ -3930,8 +3930,12 @@ TclNRSwitchObjCmd(
if (matchVarObj != NULL) {
Tcl_Obj *substringObj;
- substringObj = Tcl_GetRange(stringObj,
- info.matches[j].start, info.matches[j].end-1);
+ if (info.matches[j].end > 0) {
+ substringObj = Tcl_GetRange(stringObj,
+ info.matches[j].start, info.matches[j].end-1);
+ } else {
+ TclNewObj(substringObj);
+ }
/*
* Never fails; the object is always clean at this point.