summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPedro Tammela <pctammela@mojatatu.com>2023-05-29 12:33:35 -0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-06-09 10:23:56 +0200
commit16072e1e6ec237c9d8decdce0758f7629c175354 (patch)
treec0112a198950e0c986de15910cf6afef6dd1689f /net
parent1ce62f5178e43fc89079281abc4edc244de667ef (diff)
downloadlinux-stable-16072e1e6ec237c9d8decdce0758f7629c175354.tar.gz
linux-stable-16072e1e6ec237c9d8decdce0758f7629c175354.tar.bz2
linux-stable-16072e1e6ec237c9d8decdce0758f7629c175354.zip
net/netlink: fix NETLINK_LIST_MEMBERSHIPS length report
[ Upstream commit f4e4534850a9d18c250a93f8d7fbb51310828110 ] The current code for the length calculation wrongly truncates the reported length of the groups array, causing an under report of the subscribed groups. To fix this, use 'BITS_TO_BYTES()' which rounds up the division by 8. Fixes: b42be38b2778 ("netlink: add API to retrieve all group memberships") Signed-off-by: Pedro Tammela <pctammela@mojatatu.com> Reviewed-by: Simon Horman <simon.horman@corigine.com> Link: https://lore.kernel.org/r/20230529153335.389815-1-pctammela@mojatatu.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net')
-rw-r--r--net/netlink/af_netlink.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index c73784b7b67d..57fd9b7cfc75 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -1775,7 +1775,7 @@ static int netlink_getsockopt(struct socket *sock, int level, int optname,
break;
}
}
- if (put_user(ALIGN(nlk->ngroups / 8, sizeof(u32)), optlen))
+ if (put_user(ALIGN(BITS_TO_BYTES(nlk->ngroups), sizeof(u32)), optlen))
err = -EFAULT;
netlink_unlock_table();
return err;