[PATCH] do_wait: do take security_task_wait() into account

From: Oleg Nesterov
Date: Wed Apr 29 2009 - 12:06:19 EST


I was never able to understand what should we actually do when
security_task_wait() fails, but the current code doesn't look right.

If ->task_wait() returns the error, we update *notask_error correctly.
But then we either reap the child (despite the fact this was forbidden)
or clear *notask_error (and hide the securiy policy problems).

This patch assumes that "stolen by ptrace" doesn't matter. If selinux
denies the child we should ignore it but make sure we report -EACCESS
instead of -ECHLD if there are no other eligible children.

Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>

--- PTRACE/kernel/exit.c~WAIT_SECURITY 2009-04-29 12:46:15.000000000 +0200
+++ PTRACE/kernel/exit.c 2009-04-29 16:19:40.000000000 +0200
@@ -1476,6 +1476,7 @@ static int wait_consider_task(struct tas
*/
if (*notask_error)
*notask_error = ret;
+ return 0;
}

if (likely(!ptrace) && unlikely(task_ptrace(p))) {

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/