diff options
author | jilles <jilles@FreeBSD.org> | 2015-02-22 13:36:44 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2015-02-22 13:36:44 +0000 |
commit | 2ccd6e68c094b9b2cf3e45ba6ec6bc2f7d8639c3 (patch) | |
tree | a3d75931bf4330ec79e55c4bdafaa79dd097e2de /lib/libc/gen/nice.c | |
parent | 4928f50790f7155b2d89dce045fd1c924bb57fc4 (diff) | |
download | FreeBSD-src-2ccd6e68c094b9b2cf3e45ba6ec6bc2f7d8639c3.zip FreeBSD-src-2ccd6e68c094b9b2cf3e45ba6ec6bc2f7d8639c3.tar.gz |
nice(): Correct return value and [EPERM] error.
PR: 189821
Obtained from: NetBSD
Relnotes: yes
Diffstat (limited to 'lib/libc/gen/nice.c')
-rw-r--r-- | lib/libc/gen/nice.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/libc/gen/nice.c b/lib/libc/gen/nice.c index e8375e8..58cde98 100644 --- a/lib/libc/gen/nice.c +++ b/lib/libc/gen/nice.c @@ -43,14 +43,18 @@ __FBSDID("$FreeBSD$"); * Backwards compatible nice. */ int -nice(incr) - int incr; +nice(int incr) { int prio; errno = 0; prio = getpriority(PRIO_PROCESS, 0); if (prio == -1 && errno) - return (-1); - return (setpriority(PRIO_PROCESS, 0, prio + incr)); + return -1; + if (setpriority(PRIO_PROCESS, 0, prio + incr) == -1) { + if (errno == EACCES) + errno = EPERM; + return -1; + } + return getpriority(PRIO_PROCESS, 0); } |