mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
Revert "sysctl: treewide: drop unused argument ctl_table_root::set_ownership(table)"
This reverts commit cf3a73eeb5 which is
commit 520713a93d550406dae14d49cdb8778d70cecdfd upstream.
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: I53affa8f6283544467f3335459862a5a5c04e500
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
@@ -486,7 +486,7 @@ static struct inode *proc_sys_make_inode(struct super_block *sb,
|
|||||||
inode->i_uid = GLOBAL_ROOT_UID;
|
inode->i_uid = GLOBAL_ROOT_UID;
|
||||||
inode->i_gid = GLOBAL_ROOT_GID;
|
inode->i_gid = GLOBAL_ROOT_GID;
|
||||||
if (root->set_ownership)
|
if (root->set_ownership)
|
||||||
root->set_ownership(head, &inode->i_uid, &inode->i_gid);
|
root->set_ownership(head, table, &inode->i_uid, &inode->i_gid);
|
||||||
|
|
||||||
return inode;
|
return inode;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -185,6 +185,7 @@ struct ctl_table_root {
|
|||||||
struct ctl_table_set default_set;
|
struct ctl_table_set default_set;
|
||||||
struct ctl_table_set *(*lookup)(struct ctl_table_root *root);
|
struct ctl_table_set *(*lookup)(struct ctl_table_root *root);
|
||||||
void (*set_ownership)(struct ctl_table_header *head,
|
void (*set_ownership)(struct ctl_table_header *head,
|
||||||
|
struct ctl_table *table,
|
||||||
kuid_t *uid, kgid_t *gid);
|
kuid_t *uid, kgid_t *gid);
|
||||||
int (*permissions)(struct ctl_table_header *head, struct ctl_table *table);
|
int (*permissions)(struct ctl_table_header *head, struct ctl_table *table);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -192,6 +192,7 @@ static int set_is_seen(struct ctl_table_set *set)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void ipc_set_ownership(struct ctl_table_header *head,
|
static void ipc_set_ownership(struct ctl_table_header *head,
|
||||||
|
struct ctl_table *table,
|
||||||
kuid_t *uid, kgid_t *gid)
|
kuid_t *uid, kgid_t *gid)
|
||||||
{
|
{
|
||||||
struct ipc_namespace *ns =
|
struct ipc_namespace *ns =
|
||||||
@@ -223,7 +224,7 @@ static int ipc_permissions(struct ctl_table_header *head, struct ctl_table *tabl
|
|||||||
kuid_t ns_root_uid;
|
kuid_t ns_root_uid;
|
||||||
kgid_t ns_root_gid;
|
kgid_t ns_root_gid;
|
||||||
|
|
||||||
ipc_set_ownership(head, &ns_root_uid, &ns_root_gid);
|
ipc_set_ownership(head, table, &ns_root_uid, &ns_root_gid);
|
||||||
|
|
||||||
if (uid_eq(current_euid(), ns_root_uid))
|
if (uid_eq(current_euid(), ns_root_uid))
|
||||||
mode >>= 6;
|
mode >>= 6;
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ static int set_is_seen(struct ctl_table_set *set)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void mq_set_ownership(struct ctl_table_header *head,
|
static void mq_set_ownership(struct ctl_table_header *head,
|
||||||
|
struct ctl_table *table,
|
||||||
kuid_t *uid, kgid_t *gid)
|
kuid_t *uid, kgid_t *gid)
|
||||||
{
|
{
|
||||||
struct ipc_namespace *ns =
|
struct ipc_namespace *ns =
|
||||||
@@ -96,7 +97,7 @@ static int mq_permissions(struct ctl_table_header *head, struct ctl_table *table
|
|||||||
kuid_t ns_root_uid;
|
kuid_t ns_root_uid;
|
||||||
kgid_t ns_root_gid;
|
kgid_t ns_root_gid;
|
||||||
|
|
||||||
mq_set_ownership(head, &ns_root_uid, &ns_root_gid);
|
mq_set_ownership(head, table, &ns_root_uid, &ns_root_gid);
|
||||||
|
|
||||||
if (uid_eq(current_euid(), ns_root_uid))
|
if (uid_eq(current_euid(), ns_root_uid))
|
||||||
mode >>= 6;
|
mode >>= 6;
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ static int net_ctl_permissions(struct ctl_table_header *head,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void net_ctl_set_ownership(struct ctl_table_header *head,
|
static void net_ctl_set_ownership(struct ctl_table_header *head,
|
||||||
|
struct ctl_table *table,
|
||||||
kuid_t *uid, kgid_t *gid)
|
kuid_t *uid, kgid_t *gid)
|
||||||
{
|
{
|
||||||
struct net *net = container_of(head->set, struct net, sysctls);
|
struct net *net = container_of(head->set, struct net, sysctls);
|
||||||
|
|||||||
Reference in New Issue
Block a user