UML - don't kill pid 0
PATCH 2/6 UML - don't kill pid 0
A bit of defensive programming - during development, it ocassionally happens that a call to init_new_context is missed, resulting in context holding a host pid of zero. When that address space is torn down, destroy_context does a kill(0), which instantly kills the whole UML without any errors whatsoever.
This patch add a check for pids less than 2, to also catch 1 and negative pids.
--- arch/um/kernel/skas/mmu.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
arch/um/kernel/skas/mmu.c +13 -1
@@ -164,8 +164,20 @@ void destroy_context(struct mm_struct *mif (proc_mm)os_close_file (mmu->id.u.mm_fd); -else +else { +/* +* If init_new_context wasn't called, this will be +* zero, resulting in a kill(0), which will result in the +* whole UML suddenly dying. Also, cover negative and +* 1 cases, since they shouldn't happen either. +*/ +if (mmu->id.u.pid <2 ) { +printk (KERN_ERR "corrupt mm_context - pid = %d\n" , + mmu->id.u.pid); +return ; + }os_kill_ptraced_process (mmu->id.u.pid,1 ); + }if (skas_needs_stub)free_page (mmu->id.stack);
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
User-mode-linux-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel