case AF_INET:
{
const struct sockaddr_in *sin;
- int mask;
+ uint32_t mask;
sin = satocsin(sa);
if (sin->sin_addr.s_addr == INADDR_ANY) {
prefix = 0;
break;
}
- mask = (int)ntohl(sin->sin_addr.s_addr);
- prefix = 33 - ffs(mask); /* 33 - (1 .. 32) -> 32 .. 1 */
+ mask = ntohl(sin->sin_addr.s_addr);
+ prefix = 33 - ffs((int)mask); /* 33 - (1 .. 32) -> 32 .. 1 */
if (prefix < 32) { /* more than 1 bit in mask */
/* check for non-contig netmask */
- if ((mask ^ (((1 << prefix)-1) << (32 - prefix))) != 0){
+ if ((mask^(((1U << prefix)-1) << (32 - prefix))) != 0) {
errno = EINVAL;
return -1; /* noncontig, no pfxlen */
}