From 29d6f2148f10213de4e904d515e792d2cf8c968e Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Thu, 4 Jun 2020 21:53:55 +1000 Subject: eval: Check nflag in evaltree instead of cmdloop This patch moves the nflag check from cmdloop into evaltree. This is so that nflag will be in force even if we enter the shell via a path other than cmdloop, e.g., through sh -c. Reported-by: Joey Hess Signed-off-by: Herbert Xu --- src/eval.c | 3 +++ src/main.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/eval.c b/src/eval.c index d10be38..9476fbb 100644 --- a/src/eval.c +++ b/src/eval.c @@ -213,6 +213,9 @@ evaltree(union node *n, int flags) setstackmark(&smark); + if (nflag) + goto out; + if (n == NULL) { TRACE(("evaltree(NULL) called\n")); goto out; diff --git a/src/main.c b/src/main.c index 7a28534..5c49fdc 100644 --- a/src/main.c +++ b/src/main.c @@ -233,7 +233,7 @@ cmdloop(int top) out2str("\nUse \"exit\" to leave shell.\n"); } numeof++; - } else if (nflag == 0) { + } else { int i; job_warning = (job_warning == 2) ? 1 : 0; -- cgit 1.2.3-1.el7