From be763a7ece0c9e98519839ac31ecf5b8be619012 Mon Sep 17 00:00:00 2001 From: Brian Callahan Date: Mon, 5 Jul 2021 10:04:38 -0400 Subject: [PATCH] Sync with OpenBSD CVSROOT: /cvs Module name: src Changes by: millert@cvs.openbsd.org 2021/07/05 07:41:46 Modified files: bin/ksh : syn.c Log message: Do not permit an empty list between "while" and "do". This avoids a cpu loop for "while do done" and is consistent with the behavior of AT&T ksh and most other shells. OK jca@ halex@ --- syn.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/syn.c b/syn.c index 4d845d9..5de4770 100644 --- a/syn.c +++ b/syn.c @@ -1,4 +1,4 @@ -/* $OpenBSD: syn.c,v 1.39 2018/04/24 08:25:16 kn Exp $ */ +/* $OpenBSD: syn.c,v 1.40 2021/07/05 13:41:46 millert Exp $ */ /* * shell parser (C version) @@ -331,6 +331,8 @@ get_command(int cf) nesting_push(&old_nesting, c); t = newtp((c == WHILE) ? TWHILE : TUNTIL); t->left = c_list(true); + if (t->left == NULL) + syntaxerr(NULL); t->right = dogroup(); nesting_pop(&old_nesting); break;