freebsd-dev/bin/sh
Jilles Tjoelker 604e8224f8 sh: Do not try to execute binary files as scripts.
If execve() returns an [ENOEXEC] error, check if the file is binary before
trying to execute it using sh. A file is considered binary if at least one
of the first 256 bytes is '\0'.

In particular, trying to execute ELF binaries for the wrong architecture now
fails with an "Exec format error" message instead of syntax errors and
potentially strange results.
2011-02-05 12:54:59 +00:00
..
bltin sh: Add kill builtin. 2010-12-21 22:47:34 +00:00
funcs sh: Update the suspend example for the change of the job control flag 2010-11-13 22:20:46 +00:00
alias.c sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
alias.h sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
arith_lex.l sh: arith: Disallow decimal constants starting with 0 (containing 8 or 9). 2010-12-18 23:03:51 +00:00
arith.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
arith.y sh: Use stalloc for arith variable names. 2010-04-25 20:43:19 +00:00
builtins.def sh: Add kill builtin. 2010-12-21 22:47:34 +00:00
cd.c sh: Add a function to print warnings (with command name and newline). 2010-12-21 20:47:06 +00:00
cd.h sh: On startup of the shell, use PWD from the environment if it is valid. 2010-04-17 14:35:46 +00:00
error.c sh: Add a function to print warnings (with command name and newline). 2010-12-21 20:47:06 +00:00
error.h sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
eval.c sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
eval.h sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
exec.c sh: Do not try to execute binary files as scripts. 2011-02-05 12:54:59 +00:00
exec.h sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
expand.c sh: Remove comment mentioning herefd, which is gone. 2011-02-02 21:48:53 +00:00
expand.h sh: Don't do optimized command substitution if expansions have side effects. 2010-12-28 21:27:08 +00:00
histedit.c sh: Properly restore exception handler in fc. 2010-12-29 19:39:51 +00:00
init.h sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
input.c sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
input.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
jobs.c sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
jobs.h sh: Forget about terminated background processes sooner. 2010-06-29 22:37:45 +00:00
mail.c Consistently use "STATIC" for all functions in order to be able to set 2010-10-13 04:01:01 +00:00
mail.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
main.c sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
main.h sh: Do not run callers' exception handlers in subshells. 2009-12-25 20:21:35 +00:00
Makefile sh: Add kill builtin. 2010-12-21 22:47:34 +00:00
memalloc.c sh: Follow-up to r216743, grabstackblock() can be replaced with stalloc(). 2011-01-09 22:47:58 +00:00
memalloc.h sh: Follow-up to r216743, grabstackblock() can be replaced with stalloc(). 2011-01-09 22:47:58 +00:00
miscbltin.c sh: Code size optimizations to "stack string" memory allocation: 2010-11-23 22:17:39 +00:00
mkbuiltins sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mkinit.c sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
mknodes.c sh: Fix crash with empty functions (f() { }) introduced in r196483 2009-08-28 22:41:25 +00:00
mksyntax.c sh: Remove the check that alpha/name/in_name chars are not CTL* bytes. 2010-11-20 14:30:28 +00:00
mktokens /*- or .\"- or #- to begin license clauses. 2005-01-10 08:39:26 +00:00
myhistedit.h sh: Pass TERM changes to libedit. 2010-06-02 19:16:58 +00:00
mystring.c sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mystring.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
nodes.c.pat In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
nodetypes /*- or .\"- or #- to begin license clauses. 2005-01-10 08:39:26 +00:00
options.c sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
options.h sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
output.c sh: Use vsnprintf() rather than crafting our own in fmtstr(). 2010-12-11 17:47:27 +00:00
output.h sh: Code size optimizations to buffered output. 2010-11-20 14:14:52 +00:00
parser.c sh: Allow arbitrary large numbers in CHECKSTRSPACE. 2010-12-26 13:25:47 +00:00
parser.h sh: Do IFS splitting on word in ${v+word} and ${v-word}. 2010-10-29 13:42:18 +00:00
redir.c sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
redir.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
sh.1 sh: Do not try to execute binary files as scripts. 2011-02-05 12:54:59 +00:00
shell.h In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
show.c In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
show.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
TOUR sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
trap.c sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
trap.h sh: Make exit without parameters from EXIT trap POSIX-compliant. 2011-01-08 23:08:13 +00:00
var.c sh: Remove special code for shell scripts without magic number. 2011-02-04 22:47:55 +00:00
var.h sh: Check readonly status for assignments on regular builtins. 2011-01-01 13:26:18 +00:00