From b14be97dfdcad31d1aaab3239ba9d6f4a3630db1 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Sun, 2 Jun 2002 18:02:43 +0000 Subject: 17272: inner function definition could define nonsense --- ChangeLog | 6 ++++++ Src/parse.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/ChangeLog b/ChangeLog index 671afac4e..701b9a0ae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2002-06-02 Peter Stephenson + + * ?????: Src/parse.c: `outer() { inner(); }' succeded; when outer + ran it created a bogus `inner' which crashed the shell. Make + original command issue error. + 2002-05-31 Clint Adams * unposted: zshconfig.ac: get rid of evil -Wno-implicit diff --git a/Src/parse.c b/Src/parse.c index 7da0667a5..542a9791b 100644 --- a/Src/parse.c +++ b/Src/parse.c @@ -1566,6 +1566,8 @@ par_simple(int *complex, int nr) pl = ecadd(WCB_PIPE(WC_PIPE_END, 0)); par_cmd(&c); + if (!c) + YYERROR(oecused); set_sublist_code(sl, WC_SUBLIST_END, 0, ecused - 1 - sl, c); set_list_code(ll, (Z_SYNC | Z_END), c); -- cgit 1.4.1