Skip to content

Commit

Permalink
userns: Convert binder ipc to use kuids
Browse files Browse the repository at this point in the history
Cc: Arve Hjønnevåg <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Acked-by: Serge Hallyn <[email protected]>
Signed-off-by: Eric W. Biederman <[email protected]>
  • Loading branch information
ebiederm committed Sep 21, 2012
1 parent d2b31ca commit 4a2ebb9
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 10 deletions.
14 changes: 7 additions & 7 deletions drivers/staging/android/binder.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ static HLIST_HEAD(binder_dead_nodes);
static struct dentry *binder_debugfs_dir_entry_root;
static struct dentry *binder_debugfs_dir_entry_proc;
static struct binder_node *binder_context_mgr_node;
static uid_t binder_context_mgr_uid = -1;
static kuid_t binder_context_mgr_uid = INVALID_UID;
static int binder_last_id;
static struct workqueue_struct *binder_deferred_workqueue;

Expand Down Expand Up @@ -356,7 +356,7 @@ struct binder_transaction {
unsigned int flags;
long priority;
long saved_priority;
uid_t sender_euid;
kuid_t sender_euid;
};

static void
Expand Down Expand Up @@ -2427,7 +2427,7 @@ static int binder_thread_read(struct binder_proc *proc,
}
tr.code = t->code;
tr.flags = t->flags;
tr.sender_euid = t->sender_euid;
tr.sender_euid = from_kuid(current_user_ns(), t->sender_euid);

if (t->from) {
struct task_struct *sender = t->from->proc->tsk;
Expand Down Expand Up @@ -2705,12 +2705,12 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
ret = -EBUSY;
goto err;
}
if (binder_context_mgr_uid != -1) {
if (binder_context_mgr_uid != current->cred->euid) {
if (uid_valid(binder_context_mgr_uid)) {
if (!uid_eq(binder_context_mgr_uid, current->cred->euid)) {
pr_err("binder: BINDER_SET_"
"CONTEXT_MGR bad uid %d != %d\n",
current->cred->euid,
binder_context_mgr_uid);
from_kuid(&init_user_ns, current->cred->euid),
from_kuid(&init_user_ns, binder_context_mgr_uid));
ret = -EPERM;
goto err;
}
Expand Down
3 changes: 0 additions & 3 deletions init/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -952,9 +952,6 @@ config UIDGID_CONVERTED
depends on UFS_FS = n
depends on XFS_FS = n

# The rare drivers that won't build
depends on ANDROID_BINDER_IPC = n

config UIDGID_STRICT_TYPE_CHECKS
bool "Require conversions between uid/gids and their internal representation"
depends on UIDGID_CONVERTED
Expand Down

0 comments on commit 4a2ebb9

Please sign in to comment.