OSDN Git Service

fork: don't copy inconsistent signal handler state to child
[tomoyo/tomoyo-test1.git] / kernel / fork.c
index 8bcef24..23eb960 100644 (file)
@@ -1427,7 +1427,9 @@ static int copy_sighand(unsigned long clone_flags, struct task_struct *tsk)
                return -ENOMEM;
 
        atomic_set(&sig->count, 1);
+       spin_lock_irq(&current->sighand->siglock);
        memcpy(sig->action, current->sighand->action, sizeof(sig->action));
+       spin_unlock_irq(&current->sighand->siglock);
        return 0;
 }