2023-11-09 23:44:29 by Robert Elz | Files touched by this commit (2) |
Log message:
Update bash from 5.2.15 to 5.2.21 (6 new patches)
16: If an expression in an arithmetic for loop expands to NULL, the shell
would crash.
17: In certain cases, using the `.' builtin in a subshell would optimize away
the rest of the commands in the subshell.
18: Fix two problems with returning tokens to yyparse() when the shell
encounters a syntax error or when it reads EOF.
19: Don't reset the terminal process group when it wasn't altered initially.
20: The parser did not allow `time' to appear as the first reserved word in a
command substitution.
21: Fix an off-by-one error that causes command substitutions to fail when
they appear in a word expansion inside a here-document.
|
2023-01-19 11:50:22 by Stephen Borrill | Files touched by this commit (2) |
Log message:
bash: fix build on old OS versions
Fix build on older OS versions that lack _SC_REALTIME_SIGNALS,
_SC_TIMER_MAX, _SC_CPUTIME, _SC_THREAD_CPUTIME, SC_DELAYTIMER_MAX and
_SC_SIGQUEUE_MAX such as NetBSD 7
|
2022-12-14 17:48:41 by Robert Elz | Files touched by this commit (2) |
Log message:
Update shells/bash from 5.2.12 to 5.2.15 by adding the 3 most
recent releases patches, which fix:
Patch-13:
Bash can leak memory when referencing a noneexistent
associative array element.
Patch-14:
Bash defers processing additional terminating signals when
running the EXIT trap while exiting due to a terminating signal.
This patch allows the new terminating signal to kill the shell
immediately.
Patch-15:
There are several cases where bash is too aggressive when
optimizing out forks in subshells. For example, `eval' and
traps should never be optimized.
|
2022-11-26 00:29:47 by Adam Ciarcinski | Files touched by this commit (9) |
Log message:
bash: properly install shared objects; pkglint fixes
|
2022-11-25 19:20:46 by Robert Elz | Files touched by this commit (2) |
Log message:
Update shells/bash from 5.2.9 to 5.2.12 by adding the latest 3 patches.
These 3 new patches fix the following bugs:
Patch 10:
Bash-5.2 checkr the first 128 characters of an executable file
that execve() refuses to execute to see whether it's a binary
file before trying to execute it as a shell script. This defeats
some previously-supported use cases like "self-executing" jar
files or "self-uncompressing" scripts.
Patch 11:
Using timeouts and readline editing with the `read' builtin
(read -e -t) can leave the readline timeout enabled, potentially
resulting in an erroneous timeout on the next call.
Patch 12:
When running in bash compatibility mode, nested command
substitutions can leave the `extglob' option enabled.
|
2022-11-08 17:39:49 by Robert Elz | Files touched by this commit (2) |
Log message:
Updated to bash 5.2 patch 9 (5.2.9) (from 5.2.2)
The patches fix the following bugs:
Patch 3:
Command substitutions need to preserve newlines instead of replacing
them with semicolons
Patch 4:
Bash needs to keep better track of nested brace expansions to
avoid problems with quoting and POSIX semantics.
Patch 5:
Null pattern substitution replacement strings can cause a crash
Patch 6:
In interactive shells, interrupting the shell while entering a command
substitution can inhibit alias expansion.
Patch 7:
Several problems with alias expansion inside command
substitutions when in POSIX mode
Patch 8:
Array subscript expansion can inappropriately quote brackets
if the expression contains < or >.
Patch 9:
Bash arithmetic expansion should allow `@' and `*' to be used
as associative array keys in expressions.
|
2022-10-05 20:16:42 by Robert Elz | Files touched by this commit (2) |
Log message:
The first two (upstream) patches for bash 5.2, producing bash 5.2.2
Patch 1: Expanding unset arrays in an arithmetic context can cause a
segmentation fault.
Patch 2: Starting bash with an invalid locale specification for
LC_ALL/LANG/LC_CTYPE can cause the shell to crash.
|
2022-10-04 14:45:31 by Kimmo Suominen | Files touched by this commit (2) |
Log message:
bash: Handle _SC_RTSIG_MAX not being defined
|
2022-10-03 14:50:27 by Thomas Klausner | Files touched by this commit (5) |  |
Log message:
bash: update to 5.2.
This is a terse description of the new features added to bash-5.2 since
the release of bash-5.1. As always, the manual page (doc/bash.1) is
the place to look for complete descriptions.
1. New Features in Bash
a. The bash malloc returns memory that is aligned on 16-byte boundaries.
b. There is a new internal timer framework used for read builtin timeouts.
c. Rewrote the command substitution parsing code to call the parser recursively
and rebuild the command string from the parsed command. This allows better
syntax checking and catches errors much earlier. Along with this, if
command substitution parsing completes with here-documents remaining to be
read, the shell prints a warning message and reads the here-document bodies
from the current input stream.
d. The `ulimit' builtin now treats an operand remaining after all of the options
and arguments are parsed as an argument to the last command specified by
an option. This is for POSIX compatibility.
e. Here-document parsing now handles $'...' and $"..." quoting when \
reading the
here-document body.
f. The `shell-expand-line' and `history-and-alias-expand-line' bindable readline
commands now understand $'...' and $"..." quoting.
g. There is a new `spell-correct-word' bindable readline command to perform
spelling correction on the current word.
h. The `unset' builtin now attempts to treat arguments as array subscripts
without parsing or expanding the subscript, even when `assoc_expand_once'
is not set.
i. There is a default value for $BASH_LOADABLES_PATH in config-top.h.
j. Associative array assignment and certain instances of referencing (e.g.,
`test -v' now allow `@' and `*' to be used as keys.
k. Bash attempts to expand indexed array subscripts only once when executing
shell constructs and word expansions.
l. The `unset' builtin allows a subscript of `@' or `*' to unset a key with
that value for associative arrays instead of unsetting the entire array
(which you can still do with `unset arrayname'). For indexed arrays, it
removes all elements of the array without unsetting it (like `A=()').
m. Additional builtins (printf/test/read/wait) do a better job of not
parsing array subscripts if array_expand_once is set.
n. New READLINE_ARGUMENT variable set to numeric argument for readline commands
defined using `bind -x'.
o. The new `varredir_close' shell option causes bash to automatically close
file descriptors opened with {var}<fn and other styles of varassign
redirection unless they're arguments to the `exec' builtin.
p. The `$0' special parameter is now set to the name of the script when running
any (non-interactive) startup files such as $BASH_ENV.
q. The `enable' builtin tries to load a loadable builtin using the default
search path if `enable name' (without any options) attempts to enable a
non-existent builtin.
r. The `printf' builtin has a new format specifier: %Q. This acts like %q but
applies any specified precision to the original unquoted argument, then
quotes and outputs the result.
s. The new `noexpand_translations' option controls whether or not the translated
output of $"..." is single-quoted.
t. There is a new parameter transformation operator: @k. This is like @K, but
expands the result to separate words after word splitting.
u. There is an alternate array implementation, selectable at `configure' time,
that optimizes access speed over memory use (use the new configure
--enable-alt-array-implementation option).
v. If an [N]<&WORD- or [N]>&WORD- redirection has WORD expand to \
the empty
string, treat the redirection as [N]<&- or [N]>&- and close \
file descriptor
N (default 0).
w. Invalid parameter transformation operators are now invalid word expansions,
and so cause fatal errors in non-interactive shells.
x. New shell option: patsub_replacement. When enabled, a `&' in the replacement
string of the pattern substitution expansion is replaced by the portion of
the string that matched the pattern. Backslash will escape the `&' and
insert a literal `&'.
y. `command -p' no longer looks in the hash table for the specified command.
z. The new `--enable-translatable-strings' option to `configure' allows \
$"..."
support to be compiled in or out.
aa. The new `globskipdots' shell option forces pathname expansion never to
return `.' or `..' unless explicitly matched. It is enabled by default.
bb. Array references using `@' and `*' that are the value of nameref variables
(declare -n ref='v[@]' ; echo $ref) no longer cause the shell to exit if
set -u is enabled and the array (v) is unset.
cc. There is a new bindable readline command name:
`vi-edit-and-execute-command'.
dd. In posix mode, the `printf' builtin checks for the `L' length modifier and
uses long double for floating point conversion specifiers if it's present,
double otherwise.
ee. The `globbing' completion code now takes the `globstar' option into account.
ff. `suspend -f' now forces the shell to suspend even if job control is not
currently enabled.
gg. Since there is no `declare -' equivalent of `local -', make sure to use
`local -' in the output of `local -p'.
|
2022-01-28 21:39:20 by Amitai Schleier | Files touched by this commit (2) |
Log message:
Omit the special -arch_only treatment for old Darwin; it's not supported
by external compilers (e.g., lang/gcc10) and it's not needed by the
native compiler (at least, not on Snow Leopard gcc 4.2.1).
|