Do not allow taskset for kernel threads.
These commands will cause oopses due to stack corruption:

ls /proc/*/task | grep -v ^/ | xargs echo | xargs -n1 taskset -pc 2-9
taskset -pc 1 $$
taskset -pc 0 $((pidof john))

Possible fix in userland:

for i in ` ls /proc/*/task | grep -v ^/ `
do
        e=/proc/*/task/$i/exe
        if test -e $e
        then
                taskset -pc 2-9 $i
        fi
done


Signed-off-by: Olaf Hering <[EMAIL PROTECTED]>

---
 kernel/sched.c |    2 ++
 1 file changed, 2 insertions(+)

Index: linux-2.6.20/kernel/sched.c
===================================================================
--- linux-2.6.20.orig/kernel/sched.c
+++ linux-2.6.20/kernel/sched.c
@@ -4310,6 +4310,8 @@ long sched_setaffinity(pid_t pid, cpumas
        read_unlock(&tasklist_lock);
 
        retval = -EPERM;
+       if (!p->mm)
+               goto out_unlock;
        if ((current->euid != p->euid) && (current->euid != p->uid) &&
                        !capable(CAP_SYS_NICE))
                goto out_unlock;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to