On Sat, 2018-08-04 at 16:21 -0700, Nathan Chancellor wrote:
On Sun, Aug 05, 2018 at 12:12:02AM +0100, Dmitry Safonov wrote:
On Sat, 2018-08-04 at 15:49 -0700, Nathan Chancellor wrote:
dmesg output attached, please let me know if you need anything else.
Could you try with this diff instead? It looks like, I'm too bad with shifts and shifted for 64 bytes.
-- Thanks, Dmitry diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 7d860a22e5fb..b78bb7dc06fe 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -1011,7 +1011,7 @@ static int netlink_bind(struct socket *sock, struct sockaddr *addr, if (nlk->ngroups == 0) groups = 0;
- else
- else if (nlk->ngroups < 64) groups &= (1ULL << nlk->ngroups) - 1;
bound = nlk->bound;
This fixed my issue. If needed:
Tested-by: Nathan Chancellor natechancellor@gmail.com
Thanks for the testing, sorry again for the breakage. Will send the patch shortly (with sizeof(unsigned long long) instead of hard-coded 64). Hopefully, not too late.
(and then will go to bed and feel myself awful - not knowing C after so many years).