a bad/corrupt binary not returning ENOEXEC but some other error.
ok guenther kettenis bluhm
-/* $OpenBSD: exec_elf.c,v 1.144 2018/07/20 21:48:27 kettenis Exp $ */
+/* $OpenBSD: exec_elf.c,v 1.145 2018/07/20 21:57:26 deraadt Exp $ */
/*
* Copyright (c) 1996 Per Fogelstrom
coredump_elf,
sigcode,
esigcode,
- sigcoderet,
- EMUL_ENABLED | EMUL_NATIVE,
+ sigcoderet
};
/*
-/* $OpenBSD: init_main.c,v 1.278 2018/07/10 04:19:59 guenther Exp $ */
+/* $OpenBSD: init_main.c,v 1.279 2018/07/20 21:57:26 deraadt Exp $ */
/* $NetBSD: init_main.c,v 1.84.4.1 1996/06/02 09:08:06 mrg Exp $ */
/*
NULL, /* coredump */
sigcode,
esigcode,
- sigcoderet,
- EMUL_ENABLED | EMUL_NATIVE,
+ sigcoderet
};
-/* $OpenBSD: kern_exec.c,v 1.199 2018/07/13 09:25:23 beck Exp $ */
+/* $OpenBSD: kern_exec.c,v 1.200 2018/07/20 21:57:26 deraadt Exp $ */
/* $NetBSD: kern_exec.c,v 1.75 1996/02/09 18:59:28 christos Exp $ */
/*-
if (execsw[i].es_check == NULL)
continue;
newerror = (*execsw[i].es_check)(p, epp);
- if (!newerror && !(epp->ep_emul->e_flags & EMUL_ENABLED))
- newerror = EPERM;
/* make sure the first "interesting" error code is saved. */
if (!newerror || error == ENOEXEC)
error = newerror;
-/* $OpenBSD: proc.h,v 1.252 2018/07/13 09:25:23 beck Exp $ */
+/* $OpenBSD: proc.h,v 1.253 2018/07/20 21:57:26 deraadt Exp $ */
/* $NetBSD: proc.h,v 1.44 1996/04/22 01:23:21 christos Exp $ */
/*-
char *e_sigcode; /* Start of sigcode */
char *e_esigcode; /* End of sigcode */
char *e_esigret; /* sigaction RET position */
- int e_flags; /* Flags, see below */
struct uvm_object *e_sigobject; /* shared sigcode object */
};
-/* Flags for e_flags */
-#define EMUL_ENABLED 0x0001 /* Allow exec to continue */
-#define EMUL_NATIVE 0x0002 /* Always enabled */
/*
* time usage: accumulated times in ticks