freebsd-skq/bin
Jilles Tjoelker 4710b07ecf sh: Fix pathname expansion with quoted slashes like *\/.
These are git commits 36f0fa8fcbc8c7b2b194addd29100fb40e73e4e9 and
d6d06ff5c2ea0fa44becc5ef4340e5f2f15073e4 in dash.

Because this is the first code I'm importing from dash to expand.c, add the
Herbert Xu copyright notice which is in dash's expand.c.

When pathname expanding *\/, the CTLESC representing the quoted state was
erroneously taken as part of the * pathname component. This CTLESC was then
seen by the pattern matching code as escaping the '\0' terminating the
string.

The code is slightly different because dash converts the CTLESC characters
to backslashes and removes all the other CTL* characters to allow
substituting glob(3).

The effect of the bug was also slightly different from dash (where nothing
matched at all). Because a CTLESC can escape a '\0' in some way, whether
files were included despite the bug depended on memory that should not be
read. In particular, on many machines /*\/ expanded to a strict subset of
what /*/ expanded to.

Example:
  echo /*"/null"

This should print /dev/null, not /*/null.

PR:		bin/146378
Obtained from:	dash
2010-05-11 23:19:28 +00:00
..
cat Removed redundant WARNS setting. 2009-10-15 18:17:29 +00:00
chflags Staticify internal routines. 2009-06-23 23:30:56 +00:00
chio When running a "chio return" operation using a physical source unit 2008-10-30 19:51:02 +00:00
chmod - Don't include both <sys/types.h> and <sys/param.h> 2009-09-02 05:26:59 +00:00
cp Change all our own code to use st_*tim instead of st_*timespec. 2010-03-28 13:16:08 +00:00
csh Let csh(1) use utmpx instead of utmp. 2010-01-13 17:49:35 +00:00
date Remove stale references to utmp(5) and its corresponding filenames. 2010-01-21 17:25:12 +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
echo Mark functions as __dead2 in order to help the LLVM static checker 2008-08-04 01:25:48 +00:00
ed ed(1): make WARNS=6 clean 2010-03-04 16:08:01 +00:00
expr
getfacl Use our canonical .Dd format. 2009-11-02 12:35:38 +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 Do not restrict the allowed signals that can be specified by number 2010-02-25 13:53:09 +00:00
ln symlink(7): Add lpathconf(2) and *at system calls. 2010-04-25 13:29:59 +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
mv Add NFSv4 ACL support to mv(1). 2009-09-04 21:49:37 +00:00
pax Merge OpenBSD revisions 1.4 through 1.9, mostly style cleanups. 2010-03-30 23:14:35 +00:00
pkill The NetBSD Foundation has granted permission to remove clause 3 and 4 from 2010-03-02 07:20:46 +00:00
ps Update the list of the process flags for P_WKILLED. 2010-04-13 08:54:53 +00:00
pwait mdoc: order prologue macros consistently by Dd/Dt/Os 2010-04-14 19:08:06 +00:00
pwd
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 rm, find -delete: fix removing symlinks with uchg/uappnd set. 2009-05-30 10:42:19 +00:00
rmail Bump WARNS where possible. 2010-02-15 14:07:40 +00:00
rmdir
setfacl Switch to our preferred license text. 2010-03-07 07:59:05 +00:00
sh sh: Fix pathname expansion with quoted slashes like *\/. 2010-05-11 23:19:28 +00:00
sleep
stty Make stty(1) use tab0 and tab3 to handle tab completion. 2008-08-23 13:28:55 +00:00
sync
test Change all our own code to use st_*tim instead of st_*timespec. 2010-03-28 13:16:08 +00:00
uuidgen Removed redundant WARNS setting. 2009-10-15 18:17:29 +00:00
Makefile Add pwait utility, which waits for any process to terminate. 2009-11-17 22:47:20 +00:00
Makefile.inc