tracking-2.6.29-rc2-android-breakage.patch
authorAndy Green <andy@openmoko.com>
Tue, 27 Jan 2009 14:38:52 +0000 (14:38 +0000)
committerAndy Green <agreen@octopus.localdomain>
Tue, 27 Jan 2009 14:38:52 +0000 (14:38 +0000)
include/linux/sched.h has two copies of these credentials now... real
and effective held in two struct creds.  I chose real cred but I am uncertain
it's the desired one.

Signed-off-by: Andy Green <andy@openmoko.com>

drivers/android/binder.c

index 80a96be..87ae0b8 100644 (file)
@@ -1397,7 +1397,7 @@ binder_transaction(struct binder_proc *proc, struct binder_thread *thread,
                t->from = thread;
        else
                t->from = NULL;
-       t->sender_euid = proc->tsk->euid;
+       t->sender_euid = proc->tsk->real_cred->euid;
        t->to_proc = target_proc;
        t->to_thread = target_thread;
        t->code = tr->code;
@@ -2586,16 +2586,16 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
                        goto err;
                }
                if (binder_context_mgr_uid != -1) {
-                       if (binder_context_mgr_uid != current->euid) {
+                       if (binder_context_mgr_uid != current->real_cred->euid) {
                                printk(KERN_ERR "binder: BINDER_SET_"
                                       "CONTEXT_MGR bad uid %d != %d\n",
-                                      current->euid,
+                                      current->real_cred->euid,
                                       binder_context_mgr_uid);
                                ret = -EPERM;
                                goto err;
                        }
                } else
-                       binder_context_mgr_uid = current->euid;
+                       binder_context_mgr_uid = current->real_cred->euid;
                binder_context_mgr_node = binder_new_node(proc, NULL, NULL);
                if (binder_context_mgr_node == NULL) {
                        ret = -ENOMEM;