[patch 2/2] Use find_task_by_vpid in audit code
The pid to lookup a task by is passed inside audit code via netlink message. Thanks to Denis Lunev, netlink packets are now (since 2.6.24) _always_ processed in the context of the sending task. So this is correct to lookup the task with find_task_by_vpid() here. Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -455,7 +455,7 @@ static int audit_prepare_user_tty(pid_t pid, uid_t loginuid, u32 sessionid)
|
|||||||
int err;
|
int err;
|
||||||
|
|
||||||
read_lock(&tasklist_lock);
|
read_lock(&tasklist_lock);
|
||||||
tsk = find_task_by_pid(pid);
|
tsk = find_task_by_vpid(pid);
|
||||||
err = -ESRCH;
|
err = -ESRCH;
|
||||||
if (!tsk)
|
if (!tsk)
|
||||||
goto out;
|
goto out;
|
||||||
@@ -871,7 +871,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
|
|||||||
struct task_struct *tsk;
|
struct task_struct *tsk;
|
||||||
|
|
||||||
read_lock(&tasklist_lock);
|
read_lock(&tasklist_lock);
|
||||||
tsk = find_task_by_pid(pid);
|
tsk = find_task_by_vpid(pid);
|
||||||
if (!tsk)
|
if (!tsk)
|
||||||
err = -ESRCH;
|
err = -ESRCH;
|
||||||
else {
|
else {
|
||||||
@@ -894,7 +894,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
|
|||||||
if (s->enabled != 0 && s->enabled != 1)
|
if (s->enabled != 0 && s->enabled != 1)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
read_lock(&tasklist_lock);
|
read_lock(&tasklist_lock);
|
||||||
tsk = find_task_by_pid(pid);
|
tsk = find_task_by_vpid(pid);
|
||||||
if (!tsk)
|
if (!tsk)
|
||||||
err = -ESRCH;
|
err = -ESRCH;
|
||||||
else {
|
else {
|
||||||
|
Reference in New Issue
Block a user