From: Johannes Schindelin Date: Fri, 14 Jul 2017 20:25:58 +0000 (+0200) Subject: ash: protect WIFSTOPPED use with #if JOBS X-Git-Tag: 1_28_0~398 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=9d4dc84a769e3e45e420fbef7c7bb2acbbdccd8e;p=oweals%2Fbusybox.git ash: protect WIFSTOPPED use with #if JOBS This change fixes the build in setups where there are no headers defining WIFSTOPPED and WSTOPSIG (where JOBS has to be set to 0). This partially reverts 4700fb5be (ash: make dowait() a bit more readable. Logic is unchanged, 2015-10-09). Signed-off-by: Johannes Schindelin Signed-off-by: Denys Vlasenko --- diff --git a/shell/ash.c b/shell/ash.c index 8c2098dd9..b0c7dac54 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -4022,15 +4022,19 @@ sprint_status48(char *s, int status, int sigonly) col = 0; if (!WIFEXITED(status)) { - if (JOBS && WIFSTOPPED(status)) +#if JOBS + if (WIFSTOPPED(status)) st = WSTOPSIG(status); else +#endif st = WTERMSIG(status); if (sigonly) { if (st == SIGINT || st == SIGPIPE) goto out; - if (JOBS && WIFSTOPPED(status)) +#if JOBS + if (WIFSTOPPED(status)) goto out; +#endif } st &= 0x7f; //TODO: use bbox's get_signame? strsignal adds ~600 bytes to text+rodata @@ -4182,8 +4186,10 @@ dowait(int block, struct job *job) goto out; } /* The process wasn't found in job list */ - if (JOBS && !WIFSTOPPED(status)) +#if JOBS + if (!WIFSTOPPED(status)) jobless--; +#endif out: INT_ON;