Ver Fonte

exit signals: use of uninitialized field notify_count

task->signal->notify_count is only initialized if
task->signal->group_exit_task is not NULL.  Reorder a conditional so
that uninitialised memory is not used.  Found by Valgrind.

Signed-off-by: Steve VanDeBogart <vandebo-lkml@nerdbox.net>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Steve VanDeBogart há 16 anos atrás
pai
commit
2633f0e57b
1 ficheiros alterados com 2 adições e 2 exclusões
  1. 2 2
      kernel/exit.c

+ 2 - 2
kernel/exit.c

@@ -918,8 +918,8 @@ static void exit_notify(struct task_struct *tsk, int group_dead)
 
 
 	/* mt-exec, de_thread() is waiting for us */
 	/* mt-exec, de_thread() is waiting for us */
 	if (thread_group_leader(tsk) &&
 	if (thread_group_leader(tsk) &&
-	    tsk->signal->notify_count < 0 &&
-	    tsk->signal->group_exit_task)
+	    tsk->signal->group_exit_task &&
+	    tsk->signal->notify_count < 0)
 		wake_up_process(tsk->signal->group_exit_task);
 		wake_up_process(tsk->signal->group_exit_task);
 
 
 	write_unlock_irq(&tasklist_lock);
 	write_unlock_irq(&tasklist_lock);