diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index d5a8e159c96..a88fed9f6ef 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -586,7 +586,7 @@ in6_control(so, cmd, data, ifp, td) * signed. */ maxexpire = (-1) & - ~(1 << ((sizeof(maxexpire) * 8) - 1)); + ~((time_t)1 << ((sizeof(maxexpire) * 8) - 1)); if (ia->ia6_lifetime.ia6t_vltime < maxexpire - ia->ia6_updatetime) { retlt->ia6t_expire = ia->ia6_updatetime + @@ -604,7 +604,7 @@ in6_control(so, cmd, data, ifp, td) * signed. */ maxexpire = (-1) & - ~(1 << ((sizeof(maxexpire) * 8) - 1)); + ~((time_t)1 << ((sizeof(maxexpire) * 8) - 1)); if (ia->ia6_lifetime.ia6t_pltime < maxexpire - ia->ia6_updatetime) { retlt->ia6t_preferred = ia->ia6_updatetime + diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index da2a6170f38..4317b5b1870 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -1481,7 +1481,8 @@ nd6_ioctl(cmd, data, ifp) /* XXX: we assume time_t is signed. */ maxexpire = (-1) & - ~(1 << ((sizeof(maxexpire) * 8) - 1)); + ~((time_t)1 << + ((sizeof(maxexpire) * 8) - 1)); if (pr->ndpr_vltime < maxexpire - pr->ndpr_lastupdate) { oprl->prefix[i].expire = @@ -2330,7 +2331,8 @@ nd6_sysctl_prlist(SYSCTL_HANDLER_ARGS) /* XXX: we assume time_t is signed. */ maxexpire = (-1) & - ~(1 << ((sizeof(maxexpire) * 8) - 1)); + ~((time_t)1 << + ((sizeof(maxexpire) * 8) - 1)); if (pr->ndpr_vltime < maxexpire - pr->ndpr_lastupdate) { p->expire = pr->ndpr_lastupdate +