• P
    [PATCH] uml: make execvp safe for our usage · 5d48545e
    Paolo 'Blaisorblade' Giarrusso 提交于
    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: NPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
    Acked-by: NJeff Dike <jdike@addtoit.com>
    Signed-off-by: NAndrew Morton <akpm@osdl.org>
    Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
    5d48545e
execvp.c 4.0 KB