diff options
author | dgp <dgp@users.sourceforge.net> | 2021-04-14 18:39:12 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2021-04-14 18:39:12 (GMT) |
commit | c942ef369bab61550b2904337f031f958da3b28e (patch) | |
tree | b40b51349258acc7f261d911aaf23aebd505cca3 | |
parent | cf9fc355f851761768c2eba9e991682558c20f48 (diff) | |
parent | bf055cc0d8bd85fe77feac05766fe8b5dea46a87 (diff) | |
download | tcl-c942ef369bab61550b2904337f031f958da3b28e.zip tcl-c942ef369bab61550b2904337f031f958da3b28e.tar.gz tcl-c942ef369bab61550b2904337f031f958da3b28e.tar.bz2 |
[26649439c7] EIAS bug in [concat]
-rw-r--r-- | generic/tclUtil.c | 3 | ||||
-rw-r--r-- | tests/util.test | 3 |
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 |