|
@@ -993,7 +993,7 @@ static int netlink_bind(struct socket *sock, struct sockaddr *addr,
|
|
struct netlink_sock *nlk = nlk_sk(sk);
|
|
struct netlink_sock *nlk = nlk_sk(sk);
|
|
struct sockaddr_nl *nladdr = (struct sockaddr_nl *)addr;
|
|
struct sockaddr_nl *nladdr = (struct sockaddr_nl *)addr;
|
|
int err = 0;
|
|
int err = 0;
|
|
- long unsigned int groups = nladdr->nl_groups;
|
|
|
|
|
|
+ unsigned long groups = nladdr->nl_groups;
|
|
bool bound;
|
|
bool bound;
|
|
|
|
|
|
if (addr_len < sizeof(struct sockaddr_nl))
|
|
if (addr_len < sizeof(struct sockaddr_nl))
|
|
@@ -1011,9 +1011,7 @@ static int netlink_bind(struct socket *sock, struct sockaddr *addr,
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
|
|
|
|
- if (nlk->ngroups == 0)
|
|
|
|
- groups = 0;
|
|
|
|
- else if (nlk->ngroups < 8*sizeof(groups))
|
|
|
|
|
|
+ if (nlk->ngroups < BITS_PER_LONG)
|
|
groups &= (1UL << nlk->ngroups) - 1;
|
|
groups &= (1UL << nlk->ngroups) - 1;
|
|
|
|
|
|
bound = nlk->bound;
|
|
bound = nlk->bound;
|