ref: 279f78a86cbff3f526fe1a1debd4d4f5766f96b0
parent: 10e72d182aad860492f6ec2e80b0c05a4dc20b7a
author: qwx <qwx@sciops.net>
date: Mon Oct 20 19:13:03 EDT 2025
fix crash when variable is used as both function name and argument
contributed to 9front by Kenneth Stailey, based on bwk awk.
fixes test from T.misc:
echo hello |
awk ' function foo(foo) {
foo = 1
foo()
}
{ foo(bar) }
'
--- a/parse.c
+++ b/parse.c
@@ -215,6 +215,11 @@
SYNTAX( "`%s' is an array name and a function name", v->nval );
return;
}
+ if (isarg(v->nval) != -1) {+ SYNTAX( "`%s' is both function name and argument name", v->nval );
+ return;
+ }
+
v->tval = FCN;
v->sval = (char *) st;
n = 0; /* count arguments */
--
⑨