• Ivan Kokshaysky's avatar
    alpha: binfmt_aout fix · 74641f58
    Ivan Kokshaysky authored
    This fixes the problem introduced by commit 3bfacef4 (get rid of
    special-casing the /sbin/loader on alpha): osf/1 ecoff binary segfaults
    when binfmt_aout built as module.  That happens because aout binary
    handler gets on the top of the binfmt list due to late registration, and
    kernel attempts to execute the binary without preparatory work that must
    be done by binfmt_loader.
    
    Fixed by changing the registration order of the default binfmt handlers
    using list_add_tail() and introducing insert_binfmt() function which
    places new handler on the top of the binfmt list.  This might be generally
    useful for installing arch-specific frontends for default handlers or just
    for overriding them.
    Signed-off-by: default avatarIvan Kokshaysky <ink@jurassic.park.msu.ru>
    Cc: Al Viro <viro@ZenIV.linux.org.uk>
    Cc: Richard Henderson <rth@twiddle.net
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    74641f58
binfmt_loader.c 1.09 KB