summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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