freebsd-dev/bin
Jilles Tjoelker 11535bdf04 sh: Avoid side effects from builtins in optimized command substitution.
Change the criterion for builtins to be safe to execute in the same process
in optimized command substitution from a blacklist of only cd, . and eval to
a whitelist.

This avoids clobbering the main shell environment such as by $(exit 4) and
$(set -x).

The builtins jobid, jobs, times and trap can still show information not
available in a child process; this is deliberately permitted. (Changing
traps is not.)

For some builtins, whether they are safe depends on the arguments passed to
them. Some of these are always considered unsafe to keep things simple; this
only harms efficiency a little in the rare case they are used alone in a
command substitution.
2010-12-30 22:33:55 +00:00
..
cat Removed redundant WARNS setting. 2009-10-15 18:17:29 +00:00
chflags mdoc: drop redundant .Pp and .LP calls 2010-10-08 12:40:16 +00:00
chio Zero struct before reading from it 2010-06-02 09:34:41 +00:00
chmod - Don't include both <sys/types.h> and <sys/param.h> 2009-09-02 05:26:59 +00:00
cp Don't try to copy a socket after "xxx is a socket (not copied)." message. 2010-06-05 08:50:39 +00:00
csh Move most of the remaining USD/PSD/SMM papers into share/doc 2010-12-04 10:11:20 +00:00
date Explain that setting an absolute day value can fail and that the month should 2010-06-04 06:56:58 +00:00
dd Bump .Dd for r187609 2009-01-30 16:23:57 +00:00
df Staticify internal routines. 2009-06-23 23:30:56 +00:00
domainname Use a standard section name. 2006-12-18 15:45:01 +00:00
echo echo(1): Clarify portability and mention literal "--" handling. 2010-11-12 22:43:40 +00:00
ed ed(1): make WARNS=6 clean 2010-03-04 16:08:01 +00:00
expr expr(1): Add sh(1) versions of examples, remove an incorrect example. 2010-09-09 21:59:53 +00:00
getfacl More mdoc nitpicking to improve compatibility to mdocml 2010-06-11 06:04:07 +00:00
hostname Staticify internal routines. 2009-06-23 23:30:56 +00:00
kenv Add missing `void' for function without arguments. 2009-12-29 08:45:07 +00:00
kill sh: Add kill builtin. 2010-12-21 22:47:34 +00:00
ln Spelling fixes. 2010-07-31 21:09:49 +00:00
ls Change all our own code to use st_*tim instead of st_*timespec. 2010-03-28 13:16:08 +00:00
mkdir More markup fixes. 2006-12-27 11:28:00 +00:00
mv Add NFSv4 ACL support to mv(1). 2009-09-04 21:49:37 +00:00
pax Touch the man page date after updating the ustar limitations. 2010-08-29 12:17:16 +00:00
pkill Add -l to the synopsis 2010-07-12 01:58:46 +00:00
ps Make a thread's address available via the kern proc sysctl, just like the 2010-10-08 00:44:53 +00:00
pwait mdoc: order prologue macros consistently by Dd/Dt/Os 2010-04-14 19:08:06 +00:00
pwd Sync program's usage() with manpage's SYNOPSIS. 2005-02-09 17:37:39 +00:00
rcp Change all our own code to use st_*tim instead of st_*timespec. 2010-03-28 13:16:08 +00:00
realpath Enhance realpath(1) in a number of ways: 2008-03-09 12:46:39 +00:00
rm Fix typo and grammar nit 2010-10-31 19:16:54 +00:00
rmail Bump WARNS where possible. 2010-02-15 14:07:40 +00:00
rmdir Fix markup. 2006-12-27 12:14:56 +00:00
setfacl Typo fix: s/ommited/omitted 2010-07-27 17:33:02 +00:00
sh sh: Avoid side effects from builtins in optimized command substitution. 2010-12-30 22:33:55 +00:00
sleep Document the new argument parser for sleep(1) and SIGINFO behaviour. 2010-08-02 10:59:23 +00:00
stty Add a new libc function: cfmakesane(3). 2010-11-02 17:00:56 +00:00
sync /*- or .\"- or #- to begin license clauses. 2005-01-10 08:39:26 +00:00
test test: Move tests to tools/regression/bin/test. 2010-11-08 23:15:10 +00:00
uuidgen Removed redundant WARNS setting. 2009-10-15 18:17:29 +00:00
Makefile Merge from tbemd: 2010-09-13 01:29:51 +00:00
Makefile.inc Reimplementation of world/kernel build options. For details, see: 2006-03-17 18:54:44 +00:00