svn commit: r275038 - in stable: 10/usr.sbin/rtadvd 8/usr.sbin/rtadvd 9/usr.sbin/rtadvd
Dimitry Andric
dim at FreeBSD.org
Tue Nov 25 13:12:46 UTC 2014
Author: dim
Date: Tue Nov 25 13:12:45 2014
New Revision: 275038
URL: https://svnweb.freebsd.org/changeset/base/275038
Log:
MFC r274898:
Fix the following -Werror warnings from clang 3.5.0, while building
usr.sbin/rtadvd:
usr.sbin/rtadvd/rtadvd.c:1291:7: error: taking the absolute value of unsigned type 'unsigned int' has no effect [-Werror,-Wabsolute-value]
abs(preferred_time - pfx->pfx_pltimeexpire) > rai->rai_clockskew) {
^
usr.sbin/rtadvd/rtadvd.c:1291:7: note: remove the call to 'abs' since unsigned values cannot be negative
abs(preferred_time - pfx->pfx_pltimeexpire) > rai->rai_clockskew) {
^~~
usr.sbin/rtadvd/rtadvd.c:1324:7: error: taking the absolute value of unsigned type 'unsigned int' has no effect [-Werror,-Wabsolute-value]
abs(valid_time - pfx->pfx_vltimeexpire) > rai->rai_clockskew) {
^
usr.sbin/rtadvd/rtadvd.c:1324:7: note: remove the call to 'abs' since unsigned values cannot be negative
abs(valid_time - pfx->pfx_vltimeexpire) > rai->rai_clockskew) {
^~~
2 errors generated.
These warnings occur because both preferred_time and pfx_pltimeexpire
are uint32_t's, so the subtraction expression is also unsigned, and
calling abs() is a no-op.
However, the intention was to look at the absolute difference between
the two unsigned quantities. Introduce a small static function to
clarify what we're doing, and call that instead.
Reviewed by: hrs
Differential Revision: https://reviews.freebsd.org/D1197
Modified:
stable/9/usr.sbin/rtadvd/rtadvd.c
Directory Properties:
stable/9/usr.sbin/rtadvd/ (props changed)
Changes in other areas also in this revision:
Modified:
stable/10/usr.sbin/rtadvd/rtadvd.c
stable/8/usr.sbin/rtadvd/rtadvd.c
Directory Properties:
stable/10/ (props changed)
stable/8/usr.sbin/rtadvd/ (props changed)
Modified: stable/9/usr.sbin/rtadvd/rtadvd.c
==============================================================================
--- stable/9/usr.sbin/rtadvd/rtadvd.c Tue Nov 25 13:06:47 2014 (r275037)
+++ stable/9/usr.sbin/rtadvd/rtadvd.c Tue Nov 25 13:12:45 2014 (r275038)
@@ -1231,6 +1231,12 @@ ra_input(int len, struct nd_router_adver
return;
}
+static uint32_t
+udiff(uint32_t u, uint32_t v)
+{
+ return (u >= v ? u - v : v - u);
+}
+
/* return a non-zero value if the received prefix is inconsitent with ours */
static int
prefix_check(struct nd_opt_prefix_info *pinfo,
@@ -1289,7 +1295,7 @@ prefix_check(struct nd_opt_prefix_info *
preferred_time += now.tv_sec;
if (!pfx->pfx_timer && rai->rai_clockskew &&
- abs(preferred_time - pfx->pfx_pltimeexpire) > rai->rai_clockskew) {
+ udiff(preferred_time, pfx->pfx_pltimeexpire) > rai->rai_clockskew) {
syslog(LOG_INFO,
"<%s> preferred lifetime for %s/%d"
" (decr. in real time) inconsistent on %s:"
@@ -1322,7 +1328,7 @@ prefix_check(struct nd_opt_prefix_info *
valid_time += now.tv_sec;
if (!pfx->pfx_timer && rai->rai_clockskew &&
- abs(valid_time - pfx->pfx_vltimeexpire) > rai->rai_clockskew) {
+ udiff(valid_time, pfx->pfx_vltimeexpire) > rai->rai_clockskew) {
syslog(LOG_INFO,
"<%s> valid lifetime for %s/%d"
" (decr. in real time) inconsistent on %s:"
More information about the svn-src-stable-9
mailing list