summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2024-02-06 14:58:55 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2024-02-06 14:58:55 (GMT)
commitdd14db4f5c984da47249ad55be5051dfe9b64e72 (patch)
treeeb1b319efa47848972592cdf501e0c5cb1cbbed2
parentaf88d9b7bc0a0ed8f681c218475c282e8841050b (diff)
parentf1ee146307be073327189e999d030d5d557dadf7 (diff)
downloadtcl-dd14db4f5c984da47249ad55be5051dfe9b64e72.zip
tcl-dd14db4f5c984da47249ad55be5051dfe9b64e72.tar.gz
tcl-dd14db4f5c984da47249ad55be5051dfe9b64e72.tar.bz2
Fix [86b3c15f0c]: ::unknown has infinite recursion in a corner case
-rw-r--r--library/init.tcl4
1 files changed, 2 insertions, 2 deletions
diff --git a/library/init.tcl b/library/init.tcl
index a98dbb8..3200955 100644
--- a/library/init.tcl
+++ b/library/init.tcl
@@ -371,14 +371,14 @@ proc unknown args {
return -options $::tcl::UnknownOptions $::tcl::UnknownResult
}
- set ret [catch {set candidates [info commands $name*]} msg]
+ set ret [catch [list uplevel 1 [list info commands $name*]] candidates]
if {$name eq "::"} {
set name ""
}
if {$ret != 0} {
dict append opts -errorinfo \
"\n (expanding command prefix \"$name\" in unknown)"
- return -options $opts $msg
+ return -options $opts $candidates
}
# Filter out bogus matches when $name contained
# a glob-special char [Bug 946952]