fix for internal redirection flags colliding with open/fcntl flags; call memfd_create with MFD_NOEXEC_SEAL; fix for setting $BASH in su-started login shell; fix for unsetting $REPLY after nofork comsubs

This commit is contained in:
Chet Ramey
2024-05-01 11:39:51 -04:00
parent 9c430f6bf3
commit 1f42d15864
17 changed files with 118 additions and 357 deletions
+1 -2
View File
@@ -763,8 +763,7 @@ The words between the \fB[[\fP and \fB]]\fP do not undergo word splitting
and pathname expansion.
The shell performs tilde expansion, parameter and
variable expansion, arithmetic expansion, command substitution, process
substitution, and quote removal on those words
(the expansions that would occur if the words were enclosed in double quotes).
substitution, and quote removal on those words.
Conditional operators such as \fB\-f\fP must be unquoted to be recognized
as primaries.
.IP
+1 -2
View File
@@ -1154,8 +1154,7 @@ The words between the @code{[[} and @code{]]} do not undergo word splitting
and filename expansion.
The shell performs tilde expansion, parameter and
variable expansion, arithmetic expansion, command substitution, process
substitution, and quote removal on those words
(the expansions that would occur if the words were enclosed in double quotes).
substitution, and quote removal on those words.
Conditional operators such as @samp{-f} must be unquoted to be recognized
as primaries.
-44
View File
@@ -1,44 +0,0 @@
#! /bin/sh
#
# mkinstall - make the INSTALL file from the `Installing Bash' node of the
# texinfo manual
#
NODE="Installing Bash"
SUBNODE="Basic Installation"
TEXI=bashref.texi
TMPINFO=temp.info
TMPOUT=INSTALL.tmp
OUT=${1:-INSTALL}
trap 'rm -f $TMPOUT $TMPINFO $OUT; trap '' 0; exit 1' 1 2 3 6 15
#trap 'rm -f $TMPOUT $TMPINFO' 0
# create an info file without paragraph indentation
makeinfo --no-split -I../lib/readline/doc --paragraph-indent 0 -o $TMPINFO $TEXI
# write out the text from the `Installing Bash' node to INSTALL.tmp
info --file $TMPINFO --node "$NODE" --subnodes --output $TMPOUT
exit 0
# remove the info traversal information and the initial menu, and squeeze
# out multiple consecutive blank lines like `cat -s'
awk 'BEGIN { printline = 0; newlines = 0; }
/^File: '$TMPINFO'/ { next; }
/^'"$SUBNODE"'/ { printline = 1; }
/^$/ { if (printline) newlines = 1; next; }
/$/ { if (printline) {
if (newlines) {
printf "\n";
newlines = 0;
}
print $0;
}
}' < $TMPOUT > $OUT
exit 0
-127
View File
@@ -1,127 +0,0 @@
1\input texinfo @c -*- texinfo -*-
@c %**start of header
@setfilename bash.info
@settitle GNU Bourne Again SHell
@setchapternewpage odd
@c %**end of header
@c DON'T RUN FINALOUT YET UNTIL FINAL STAGES
@ignore
@iftex
@finalout
@end iftex
@end ignore
@ifinfo
This file documents the GNU Bourne Again SHell.
Copyright @copyright{} 1992 Free Software Foundation, Inc.
@end ifinfo
@titlepage
@sp 10
@center @titlefont{GNU Bash, the Bourne Again SHell}
@center Unproofed Draft
@sp 10
@center Brian Fox, Chet Ramey
@center @today{}
@page
This document describes GNU Bash, a Bourne shell compatible
command language interpreter which executes commands read from the
standard input or from a file.
Published by the Free Software Foundation @*
675 Massachusetts Avenue, @*
Cambridge, MA 02139 USA
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation approved
by the Foundation.
@vskip 0pt plus 1filll
Copyright @copyright{} 1992 Free Software Foundation, Inc.
@end titlepage
@ifinfo
This document describes GNU Bash, a Bourne shell compatible
command language interpreter which executes commands read from the
standard input or from a file.
Published by the Free Software Foundation @*
675 Massachusetts Avenue, @*
Cambridge, MA 02139 USA
@ignore
Permission is granted to process this file through TeX and print the
results, provided the printed document carries copying permission
notice identical to this one except for the removal of this paragraph
(this paragraph not being relevant to the printed manual).
@end ignore
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation approved
by the Foundation.
@end ifinfo
I Tutorial
i Describe what Bash does.
1) What a shell is for.
2) How Bash is different from other shells.
ii Superficial description of how the shell works.
1) Parts of a command.
a) Command words.
b) Command separators.
c) Redirection words.
iii Hands on Experience.
1) Starting a shell.
a) startup files.
b) switching from Csh.
Using alias.conv
2) The Environment.
a) Description of "environment".
b) Some important environment variables.
c) Other common environment variables.
3) Issuing command lines.
a) Example
II Reference
i Shell Syntax
1) Parts of "speech".
a) Command Words.
b) Command Seprators.
c) Redirection Words.
2) Quoting Syntax.
3) Common Idioms.
ii Guide by feature.
1) Builtins.
2) Variables.
ii Guide by task.
III Indices
i