summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2021-04-14 18:39:12 (GMT)
committerdgp <dgp@users.sourceforge.net>2021-04-14 18:39:12 (GMT)
commitc942ef369bab61550b2904337f031f958da3b28e (patch)
treeb40b51349258acc7f261d911aaf23aebd505cca3
parentcf9fc355f851761768c2eba9e991682558c20f48 (diff)
parentbf055cc0d8bd85fe77feac05766fe8b5dea46a87 (diff)
downloadtcl-c942ef369bab61550b2904337f031f958da3b28e.zip
tcl-c942ef369bab61550b2904337f031f958da3b28e.tar.gz
tcl-c942ef369bab61550b2904337f031f958da3b28e.tar.bz2
[26649439c7] EIAS bug in [concat]
-rw-r--r--generic/tclUtil.c3
-rw-r--r--tests/util.test3
2 files changed, 5 insertions, 1 deletions
diff --git a/generic/tclUtil.c b/generic/tclUtil.c
index d7e0168..086b03b 100644
--- a/generic/tclUtil.c
+++ b/generic/tclUtil.c
@@ -1859,7 +1859,8 @@ Tcl_ConcatObj(
TclListObjGetElements(NULL, objPtr, &listc, &listv);
if (listc) {
if (resPtr) {
- if (TCL_OK != Tcl_ListObjReplace(NULL, resPtr,
+ if (Tcl_GetString(listv[0])[0] == '#'
+ || TCL_OK != Tcl_ListObjReplace(NULL, resPtr,
INT_MAX, 0, listc, listv)) {
/* Abandon ship! */
Tcl_DecrRefCount(resPtr);
diff --git a/tests/util.test b/tests/util.test
index 3f7ffe2..9eee1a6 100644
--- a/tests/util.test
+++ b/tests/util.test
@@ -206,6 +206,9 @@ test util-4.7 {Tcl_ConcatObj - refCount safety} testconcatobj {
# symptoms was Bug #2055782.
testconcatobj
} {}
+test util-4.8 {Tcl_ConcatObj - [Bug 26649439c7]} {
+ concat [list foo] [list #]
+} {foo {#}}
proc Wrapper_Tcl_StringMatch {pattern string} {
# Forces use of Tcl_StringMatch, not Tcl_UniCharCaseMatch