mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-12 09:58:36 +00:00
The PR diff I committed recently had one bug noticed by
Joe Marcus Clarke <marcus@FreeBSD.ORG>, subshells could lose a non-zero exit status. This commit is Joe's proposed patch. Thanks! I verified that the problem Joe found is fixed and I ran a full world with this patch. I don't plan to ever commit language patches to /bin/sh again. It is a minefield too big to navigate without a full-time committment, which I am not willing to do on our /bin/sh. Under normal circumstances I would recommend using NetBSD's sh which has a lot of language fixes (like the ones what these patches were about) but unfortunately they had implemented broken signal behaviour for shellscript containing interactive programs. Similar issues apply to pdksh which is OpenBSD's sh. From my perspective bash2 is the only really working bourne sh out there and that one is GPLed. Oh well.
This commit is contained in:
parent
5c4d4bfad4
commit
6c6fd020de
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=125153
@ -273,7 +273,8 @@ evaltree(union node *n, int flags)
|
||||
if (pendingsigs)
|
||||
dotrap();
|
||||
if ((flags & EV_EXIT) || (eflag && exitstatus
|
||||
&& !(flags & EV_TESTED) && (n->type == NCMD)))
|
||||
&& !(flags & EV_TESTED) && (n->type == NCMD ||
|
||||
n->type == NSUBSHELL)))
|
||||
exitshell(exitstatus);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user