diff options
author | dim <dim@FreeBSD.org> | 2014-10-29 20:18:37 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2014-10-29 20:18:37 +0000 |
commit | a4cb0d397c82c181500feacc463bc5ff9e28a53c (patch) | |
tree | cd655db875be8f6300e2d483719f551662eccb0b | |
parent | dde27ca539609de3097606aea6701c6c2ad8e6ca (diff) | |
download | FreeBSD-src-a4cb0d397c82c181500feacc463bc5ff9e28a53c.zip FreeBSD-src-a4cb0d397c82c181500feacc463bc5ff9e28a53c.tar.gz |
Fix a clang 3.5 warning about abs(3) being given an argument of type
quad_t in setusercontext(). While here, sanitize the clamping of the
priority value, and use the correct type for the return value of
login_getcapnum().
Reviewed by: kib
MFC after: 3 days
-rw-r--r-- | lib/libutil/login_class.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/libutil/login_class.c b/lib/libutil/login_class.c index 39cce12..9ffca8e 100644 --- a/lib/libutil/login_class.c +++ b/lib/libutil/login_class.c @@ -424,7 +424,7 @@ setlogincontext(login_cap_t *lc, const struct passwd *pwd, int setusercontext(login_cap_t *lc, const struct passwd *pwd, uid_t uid, unsigned int flags) { - quad_t p; + rlim_t p; mode_t mymask; login_cap_t *llc = NULL; struct sigaction sa, prevsa; @@ -449,16 +449,16 @@ setusercontext(login_cap_t *lc, const struct passwd *pwd, uid_t uid, unsigned in if (p > PRIO_MAX) { rtp.type = RTP_PRIO_IDLE; - rtp.prio = p - PRIO_MAX - 1; - p = (rtp.prio > RTP_PRIO_MAX) ? 31 : p; + p -= PRIO_MAX + 1; + rtp.prio = p > RTP_PRIO_MAX ? RTP_PRIO_MAX : p; if (rtprio(RTP_SET, 0, &rtp)) syslog(LOG_WARNING, "rtprio '%s' (%s): %m", pwd ? pwd->pw_name : "-", lc ? lc->lc_class : LOGIN_DEFCLASS); } else if (p < PRIO_MIN) { rtp.type = RTP_PRIO_REALTIME; - rtp.prio = abs(p - PRIO_MIN + RTP_PRIO_MAX); - p = (rtp.prio > RTP_PRIO_MAX) ? 1 : p; + p -= PRIO_MIN - RTP_PRIO_MAX; + rtp.prio = p < RTP_PRIO_MIN ? RTP_PRIO_MIN : p; if (rtprio(RTP_SET, 0, &rtp)) syslog(LOG_WARNING, "rtprio '%s' (%s): %m", pwd ? pwd->pw_name : "-", |