exit: Guarantee make_task_dead leaks the tsk when calling do_task_exit
Change the task state to EXIT_DEAD and take an extra rcu_refernce
to guarantee the task will not be reaped and that it will not be
freed.
Link: https://lkml.kernel.org/r/YdUzjrLAlRiNLQp2@zeniv-ca.linux.org.uk
Pointed-out-by: Al Viro <viro@zeniv.linux.org.uk>
Fixes: 7f80a2fd7d ("exit: Stop poorly open coding do_task_dead in make_task_dead")
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
			
			
This commit is contained in:
		
							parent
							
								
									85be9ae7b6
								
							
						
					
					
						commit
						912616f142
					
				| @ -885,6 +885,8 @@ void __noreturn make_task_dead(int signr) | ||||
| 	if (unlikely(tsk->flags & PF_EXITING)) { | ||||
| 		pr_alert("Fixing recursive fault but reboot is needed!\n"); | ||||
| 		futex_exit_recursive(tsk); | ||||
| 		tsk->exit_state = EXIT_DEAD; | ||||
| 		refcount_inc(&tsk->rcu_users); | ||||
| 		do_task_dead(); | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user