Re: [PATCH] netlink: Don't shift on 64 for ngroups

From: David Miller
Date: Sat Aug 04 2018 - 20:09:00 EST


From: Dmitry Safonov <dima@xxxxxxxxxx>
Date: Sun, 5 Aug 2018 00:55:44 +0100

> @@ -1011,8 +1011,8 @@ static int netlink_bind(struct socket *sock, struct sockaddr *addr,
>
> if (nlk->ngroups == 0)
> groups = 0;
> - else
> - groups &= (1ULL << nlk->ngroups) - 1;
> + else if (nlk->ngroups < sizeof(long unsigned int))
> + groups &= (1UL << nlk->ngroups) - 1;

Sizeof is in bytes, you want to compare against bits.