Revert "genetlink: add CAP_NET_ADMIN test for multicast bind"
This reverts commit 263bffd2b6
which does
not have a direct relation to an upstream commit.
It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.
Bug: 161946584
Change-Id: I8ddc8a86b47a9560115ccb83fc50d522436d0b3b
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
parent
4684391cef
commit
ee9bfb84c7
@ -14,7 +14,6 @@
|
|||||||
*/
|
*/
|
||||||
struct genl_multicast_group {
|
struct genl_multicast_group {
|
||||||
char name[GENL_NAMSIZ];
|
char name[GENL_NAMSIZ];
|
||||||
u8 flags;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct genl_ops;
|
struct genl_ops;
|
||||||
|
@ -989,43 +989,11 @@ static struct genl_family genl_ctrl __ro_after_init = {
|
|||||||
.netnsok = true,
|
.netnsok = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int genl_bind(struct net *net, int group)
|
|
||||||
{
|
|
||||||
const struct genl_family *family;
|
|
||||||
unsigned int id;
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
genl_lock_all();
|
|
||||||
|
|
||||||
idr_for_each_entry(&genl_fam_idr, family, id) {
|
|
||||||
const struct genl_multicast_group *grp;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (family->n_mcgrps == 0)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
i = group - family->mcgrp_offset;
|
|
||||||
if (i < 0 || i >= family->n_mcgrps)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
grp = &family->mcgrps[i];
|
|
||||||
if ((grp->flags & GENL_UNS_ADMIN_PERM) &&
|
|
||||||
!ns_capable(net->user_ns, CAP_NET_ADMIN))
|
|
||||||
ret = -EPERM;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
genl_unlock_all();
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int __net_init genl_pernet_init(struct net *net)
|
static int __net_init genl_pernet_init(struct net *net)
|
||||||
{
|
{
|
||||||
struct netlink_kernel_cfg cfg = {
|
struct netlink_kernel_cfg cfg = {
|
||||||
.input = genl_rcv,
|
.input = genl_rcv,
|
||||||
.flags = NL_CFG_F_NONROOT_RECV,
|
.flags = NL_CFG_F_NONROOT_RECV,
|
||||||
.bind = genl_bind,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* we'll bump the group number right afterwards */
|
/* we'll bump the group number right afterwards */
|
||||||
|
Loading…
Reference in New Issue
Block a user