NetBSD/bin/sh
martin c83168f3dc Pull up following revision(s) (requested by kre in ticket #684):
bin/sh/jobs.c: revision 1.107
	bin/sh/main.c: revision 1.83
	bin/sh/main.c: revision 1.84
	bin/sh/main.c: revision 1.85

If we are invoked with SIGCHLD ignored, we fail badly, as we assume
that we can always wait(2) for our children, and an ignored SIGCHLD
prevents that.   Recent versions of bash can be convinced (due to a
bug most likely) to invoke us that way.   Always return SIGCHLD to
SIG_DFL during init - we already prevent scripts from fiddling it.

All ash derived shells apparently have this problem (observed by
Martijn Dekker, and notified on the bash-bug list).  Actual issue
diagnosed by Harald van Dijk (same list).

Actually, the issue with bash (in previous) is more likely that the
SIGCHLD is blocked rather than ignored.   We want neither.   Make sure
SIGCHLD is unblocked as well as SIG_DFL.

XXX pullup -9

bin/sh: Fixes -Werror=shadow causing build breaks.
Conflicting variable name, sigset_t sigs has been renamed to sigset_t mask

Reviewed by: kamil@

Avoid a core dump if a child process that is not one of our
children happens to exit while we are waiting for another child
to exit.

This can happen with code like
	sh -c '
		sleep 5 &
		exec sh -c "sleep 10 & wait !$"
	      '

when the inner "sh" is waiting for the 10 second sleep to be
done, the 5 second sleep started earlier terminates.   It is
a child of our process, as the inner shell is the same process
as the outer one, but not a known child (the inner shell has no
idea what the outer one did before it started).

This was observed in the wild by Martijn Dekker (where the outer
shell was bash but that's irrelevant).

XXX pullup -9
2020-02-10 18:54:14 +00:00
..
USD.doc Fix "every" typo in quote from The Mythical Man-Month 2018-09-14 05:59:10 +00:00
bltin Remove workaround for ancient HTML generation code. 2017-07-03 21:28:48 +00:00
funcs delete clauses 3,4 2016-02-29 23:50:59 +00:00
Makefile Change the (commented out) setting of -DDEBUG to the form that 2018-10-28 18:13:47 +00:00
TOUR Fix grammar in couple of sentences. 2016-10-25 13:01:59 +00:00
alias.c Allocate alias pointers for qsort() to use on the stack, rather than 2019-02-09 09:11:07 +00:00
alias.h Revamp aliases - as dumb an idea as they are, if we're going 2018-12-03 06:40:26 +00:00
arith_token.c Do a better job of reporting invalid numeric constants in arithmetic exprs. 2017-12-17 04:06:03 +00:00
arith_tokens.h Add support for ++ and -- (pre & post) and ',' to arithmetic. 2017-07-24 13:21:14 +00:00
arithmetic.c In uses like $(( var )) (un-dollared vars in arithmetic) we allow 2018-04-21 23:01:29 +00:00
arithmetic.h A better LINENO implementation. This version deletes (well, #if 0's out) 2017-06-07 05:08:32 +00:00
builtins.def Add the "specialvar" built-in command. Discussed (well, mentioned 2019-02-14 11:15:24 +00:00
cd.c DEBUG only changes. Convert the TRACE() calls in the remaining files 2017-07-05 20:00:27 +00:00
cd.h PR/45069: Henning Petersen: Use prototypes from builtins.h . 2011-06-18 21:18:46 +00:00
error.c PR bin/53919 2019-02-04 11:16:41 +00:00
error.h PR bin/53919 2019-02-04 11:16:41 +00:00
eval.c Pull up following revision(s) (requested by kre in ticket #582): 2019-12-26 20:16:47 +00:00
eval.h PR bin/53919 2019-02-04 11:16:41 +00:00
exec.c Fix several bugs in the command / type builtin ( including PR bin/48499 ) 2018-07-25 14:42:50 +00:00
exec.h Deal with ref after free found by ASAN when a function redefines 2018-06-22 11:04:55 +00:00
expand.c Pull up following revision(s) (requested by kre in ticket #467): 2019-11-24 08:24:06 +00:00
expand.h Rationalise (slightly) the way that expansions are processed 2018-11-18 17:23:37 +00:00
histedit.c Remove a function prototype which was added to <histedit.h> in 2005. 2019-02-10 19:21:52 +00:00
init.h
input.c KNF - white space changes, indent using tabs not spaces. NFC. 2019-02-09 09:20:47 +00:00
input.h PR bin/48875 (is related, and ameliorated, but not exactly "fixed") 2018-08-19 23:50:27 +00:00
jobs.c Pull up following revision(s) (requested by kre in ticket #684): 2020-02-10 18:54:14 +00:00
jobs.h Whitespace cleanup from last update. NFC. 2018-09-11 03:30:40 +00:00
machdep.h
mail.c If we are going to keep the MAILPATH % hack, then at least do something 2017-06-04 20:28:13 +00:00
mail.h
main.c Pull up following revision(s) (requested by kre in ticket #684): 2020-02-10 18:54:14 +00:00
main.h When forking a child shell, arrange for errors/exit to always unwind 2018-12-03 02:38:30 +00:00
memalloc.c INTON / INTOFF audit and cleanup. 2019-02-09 03:35:55 +00:00
memalloc.h Fix (hopefully) the problem reported on current-users by Patrick Welche. 2018-08-22 20:08:54 +00:00
miscbltin.c Fix inconsistent whitespace 2017-05-13 15:03:34 +00:00
miscbltin.h
mkbuiltins
mkinit.sh Use printf, rather than echo (via echo redefined as a function that 2018-12-05 09:20:18 +00:00
mknodenames.sh In the older debug code (not using the new macros added in the 2018-08-18 03:09:37 +00:00
mknodes.sh Add some error checking, and stop assuming what the input 2019-01-19 13:08:50 +00:00
mkoptions.sh Sort options with long names that differ only by char case in 2017-11-15 09:21:19 +00:00
mktokens Add a comment explaining the ordering reltionship of the tokens 2017-07-26 03:46:54 +00:00
myhistedit.h Now libedit supports embedded mode switch sequence, improve sh 2017-06-28 13:46:06 +00:00
mystring.c Remove atoi() 2018-07-13 22:43:44 +00:00
mystring.h
nodes.c.pat Deal with ref after free found by ASAN when a function redefines 2018-06-22 11:04:55 +00:00
nodetypes Remove some left over baggage from the LINENO v1 implementation that 2017-06-08 13:12:17 +00:00
option.list Avoid long option names that differ only in character case. 2018-11-23 20:40:06 +00:00
options.c Remove atoi() 2018-07-13 22:43:44 +00:00
options.h Arrange for set -o and $- output to be sorted, rather than more 2017-05-28 00:38:01 +00:00
output.c Remove the -X option from SMALL shells (as used on boot floppies, 2017-11-21 03:42:39 +00:00
output.h Remove the -X option from SMALL shells (as used on boot floppies, 2017-11-21 03:42:39 +00:00
parser.c Fix an (apparent) ancient ash bug, that was apparently fixed sometime 2019-05-04 02:52:22 +00:00
parser.h Delete a no-longer-used #define that referred to a struct field that 2019-02-13 21:40:50 +00:00
redir.c The previous commit was obviously made by a broken mindless automoton 2019-03-01 06:15:01 +00:00
redir.h Include redirections in trace output from "set -x" 2017-06-30 23:01:21 +00:00
sh.1 Bump date for previous. 2019-04-22 04:10:33 +00:00
shell.h NFCI - DEBUG mode only change. 2019-01-22 13:48:28 +00:00
show.c DEBUG mode only change. When pretty-printing a word from a parse 2019-02-14 13:27:59 +00:00
show.h NFC: DEBUG only change - provide an externally visible (to the DEBUG sh 2017-06-30 23:00:40 +00:00
syntax.c Add a couple of comments. NFC. 2019-02-04 09:56:48 +00:00
syntax.h Finish the fixes from Feb 4 for handling of random data that 2019-02-27 04:10:56 +00:00
trap.c Pull up following revision(s) (requested by kre in ticket #542): 2019-12-11 14:52:50 +00:00
trap.h Make pendingsigs forward declaration match the definition. 2018-12-03 10:53:29 +00:00
var.c Add the "specialvar" built-in command. Discussed (well, mentioned 2019-02-14 11:15:24 +00:00
var.h Alter a design botch when magic (self modifying) variables 2018-12-04 14:03:30 +00:00
version.h The time has come, the Walrus said... (but no shoes, 2018-12-12 12:16:42 +00:00