--- x/fs/binfmt_elf.c.~1~ 2004-02-21 18:15:37.000000000 +0100 +++ x/fs/binfmt_elf.c 2004-02-23 04:00:42.950171864 +0100 @@ -581,6 +581,10 @@ static int load_elf_binary(struct linux_ // printk(KERN_WARNING "ELF: Ambiguous type, using ELF\n"); interpreter_type = INTERPRETER_ELF; } + /* Verify the interpreter has a valid arch */ + if ((interpreter_type == INTERPRETER_ELF) && + !elf_check_arch(&interp_elf_ex)) + goto out_free_dentry; } else { /* Executables without an interpreter also need a personality */ SET_PERSONALITY(elf_ex, ibcs2_interpreter);