ptrace: ptrace_attach: fix the usage of ->cred_exec_mutex
authorOleg Nesterov <oleg@redhat.com>
Sun, 26 Apr 2009 23:41:34 +0000 (01:41 +0200)
committerJames Morris <jmorris@namei.org>
Mon, 27 Apr 2009 10:30:51 +0000 (20:30 +1000)
ptrace_attach() needs task->cred_exec_mutex, not current->cred_exec_mutex.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Roland McGrath <roland@redhat.com>
Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <jmorris@namei.org>
kernel/ptrace.c

index dfcd83ceee3b246326cbec2a6eadb27abdba7823..0692ab5a0d672341000d1697d7c308c566060fb4 100644 (file)
@@ -188,7 +188,7 @@ int ptrace_attach(struct task_struct *task)
        /* Protect exec's credential calculations against our interference;
         * SUID, SGID and LSM creds get determined differently under ptrace.
         */
-       retval = mutex_lock_interruptible(&current->cred_exec_mutex);
+       retval = mutex_lock_interruptible(&task->cred_exec_mutex);
        if (retval  < 0)
                goto out;
 
@@ -232,7 +232,7 @@ repeat:
 bad:
        write_unlock_irqrestore(&tasklist_lock, flags);
        task_unlock(task);
-       mutex_unlock(&current->cred_exec_mutex);
+       mutex_unlock(&task->cred_exec_mutex);
 out:
        return retval;
 }