From 649c10c59b016ae8586e54746d3761bc6df33c9b Mon Sep 17 00:00:00 2001 From: Bruce Cran Date: Mon, 20 Feb 2012 07:59:06 +0100 Subject: [PATCH] nice() error handling I've attached a patch which fixes a potential issue I noticed while reading the POSIX specs: nice() can succeed and return -1, so it's recommended to set errno to 0 and check it afterwards: "As -1 is a permissible return value in a successful situation, an application wishing to check for error situations should set errno to 0, then call nice(), and if it returns -1, check to see whether errno is non-zero." Signed-off-by: Jens Axboe --- backend.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend.c b/backend.c index e567ad5e..6e0e4424 100644 --- a/backend.c +++ b/backend.c @@ -1019,7 +1019,8 @@ static void *thread_main(void *data) if (td->o.cgroup_weight && cgroup_setup(td, cgroup_list, &cgroup_mnt)) goto err; - if (nice(td->o.nice) == -1) { + errno = 0; + if (nice(td->o.nice) == -1 && errno != 0) { td_verror(td, errno, "nice"); goto err; } -- 2.25.1