]> git.hungrycats.org Git - linux/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 8 May 2009 22:45:05 +0000 (15:45 -0700)
commit cad81bc2529ab8c62b6fdc83a1c0c7f4a87209eb upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
kernel/ptrace.c

index c9cf48b21f052a620b34151cc9de6c4b48f4ad66..dc3b98ef10bb08bbe274a250ed3e1e950e79796a 100644 (file)
@@ -186,7 +186,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;
 
@@ -230,7 +230,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;
 }