about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/exec.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index c7695c09d..870774090 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-10-16  Peter Stephenson  <p.stephenson@samsung.com>
+
+	* _RuRo_ (Андрей Стоцкий): 44841: Src/exec.c: Better error
+	checking of nice, since return value can be negative.
+
 2019-10-14  Daniel Shahaf  <d.s@daniel.shahaf.name>
 
 	* 44812: Completion/Unix/Command/_subversion: Fix syntax error
diff --git a/Src/exec.c b/Src/exec.c
index e81053d67..6014ec9a5 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -2765,9 +2765,12 @@ execcmd_fork(Estate state, int how, int type, Wordcode varspc,
     sigtrapped[SIGEXIT] = 0;
 #ifdef HAVE_NICE
     /* Check if we should run background jobs at a lower priority. */
-    if ((how & Z_ASYNC) && isset(BGNICE))
-	if (nice(5) < 0)
+    if ((how & Z_ASYNC) && isset(BGNICE)) {
+	errno = 0;
+	nice(5);
+	if (errno)
 	    zwarn("nice(5) failed: %e", errno);
+    }
 #endif /* HAVE_NICE */
 
     return 0;