aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-11-21 18:20:28 +0100
committerDavid S. Miller <davem@davemloft.net>2013-11-21 13:09:43 -0500
commit91398a0992c8aa18eb7749060b75761ece5ddc57 (patch)
tree4e776ab54477ad1becb6c404805dab8db723729a /include
parentgenetlink: fix genlmsg_multicast() bug (diff)
downloadlinux-dev-91398a0992c8aa18eb7749060b75761ece5ddc57.tar.xz
linux-dev-91398a0992c8aa18eb7749060b75761ece5ddc57.zip
genetlink: fix genl_set_err() group ID
Fix another really stupid bug - I introduced genl_set_err() precisely to be able to adjust the group and reject invalid ones, but then forgot to do so. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/net/genetlink.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/net/genetlink.h b/include/net/genetlink.h
index 771af09e90eb..1b177ed803b7 100644
--- a/include/net/genetlink.h
+++ b/include/net/genetlink.h
@@ -384,6 +384,9 @@ static inline struct sk_buff *genlmsg_new(size_t payload, gfp_t flags)
static inline int genl_set_err(struct genl_family *family, struct net *net,
u32 portid, u32 group, int code)
{
+ if (WARN_ON_ONCE(group >= family->n_mcgrps))
+ return -EINVAL;
+ group = family->mcgrp_offset + group;
return netlink_set_err(net->genl_sock, portid, group, code);
}