-
- Downloads
[PATCH] uml: make execvp safe for our usage
Reimplement execvp for our purposes - after we call fork() it is fundamentally unsafe to use the kernel allocator - current is not valid there. So we simply pass to our modified execvp() a preallocated buffer. This fixes a real bug and works very well in testing (I've seen indirectly warning messages from the forked thread - they went on the pipe connected to its stdout and where read as a number by UML, when calling read_output(). I verified the obtained number corresponded to "BUG:"). The added use of __cant_sleep() is not a new bug since __cant_sleep() is already used in the same function - passing an atomicity parameter would be better but it would require huge change, stating that this function must not be called in atomic context and can sleep is a better idea (will make sure of this gradually). Signed-off-by:Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Acked-by:
Jeff Dike <jdike@addtoit.com> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
Showing
- arch/um/include/os.h 2 additions, 0 deletionsarch/um/include/os.h
- arch/um/os-Linux/Makefile 5 additions, 5 deletionsarch/um/os-Linux/Makefile
- arch/um/os-Linux/execvp.c 149 additions, 0 deletionsarch/um/os-Linux/execvp.c
- arch/um/os-Linux/helper.c 10 additions, 4 deletionsarch/um/os-Linux/helper.c
Loading
Please register or sign in to comment