Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package bash for openSUSE:Factory checked in at 2022-10-11 17:59:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bash (Old) and /work/SRC/openSUSE:Factory/.bash.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bash" Tue Oct 11 17:59:13 2022 rev:180 rq:1008386 version:5.2.MACRO Changes: -------- --- /work/SRC/openSUSE:Factory/bash/bash.changes 2022-09-21 14:39:00.101184079 +0200 +++ /work/SRC/openSUSE:Factory/.bash.new.2275/bash.changes 2022-10-11 17:59:19.433483196 +0200 @@ -1,0 +2,31 @@ +Thu Oct 6 10:43:59 UTC 2022 - Dr. Werner Fink <[email protected]> + +- Add upstream patches + * bash52-001 + Expanding unset arrays in an arithmetic context can cause a + segmentation fault. + * bash52-002 + Starting bash with an invalid locale specification for + LC_ALL/LANG/LC_CTYPE can cause the shell to crash. +- Do not run checks in parallel as it eats memory, a lot of memory +- Disable alternate array implementation as it eats a lot of memory + +------------------------------------------------------------------- +Tue Sep 27 07:54:48 UTC 2022 - Dr. Werner Fink <[email protected]> + +- Update to final bash 5.2 + a. When replacing a history entry, make sure the existing entry has a non-NULL + timestamp before copying it; it may have been added by the application, not + the history library. + +------------------------------------------------------------------- +Tue Sep 27 07:44:16 UTC 2022 - Dr. Werner Fink <[email protected]> + +- Modernize run-tests + +------------------------------------------------------------------- +Sat Sep 24 13:57:27 UTC 2022 - Christopher Yeleighton <[email protected]> + +- add checks + +------------------------------------------------------------------- @@ -4 +35 @@ -- Enable parallel builds by slpitting clean and all at make time +- Enable parallel builds by splitting clean and all at make time @@ -21,0 +53,34 @@ +Tue Sep 13 06:42:43 UTC 2022 - Dr. Werner Fink <[email protected]> + +- Update to bash 5.2 rc4 + Pos. aa is now enabled by default. + m. Readline now checks for changes to locale settings (LC_ALL/LC_CTYPE/LANG) + each time it is called, and modifies the appropriate locale-specific display +- Port patches + * bash-2.03-manual.patch + * bash-5.2.dif + +------------------------------------------------------------------- +Wed Jul 27 12:20:53 UTC 2022 - Dr. Werner Fink <[email protected]> + +- Update to bash 5.2 rc2 + gg. Since there is no `declare -' equivalent of `local -', make sure to use + `local -' in the output of `local -p'. + +------------------------------------------------------------------- +Wed Jun 22 06:19:27 UTC 2022 - Dr. Werner Fink <[email protected]> + +- Update to bash 5.2 rc1 + 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. +- Port patches + * bash-2.03-manual.patch + * bash-3.2-printf.patch + * bash-4.1-bash.bashrc.dif + * bash-5.2.dif + +------------------------------------------------------------------- @@ -26,0 +92,84 @@ +Thu Apr 28 11:59:44 UTC 2022 - Dr. Werner Fink <[email protected]> + +- Update to bash 5.2 beta + 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. + 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. + 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'. +- Remove upstream patchset tarball for 8.1 and create new and empty for 8.2 +- Port patches + * bash-2.03-manual.patch + * bash-3.0-evalexp.patch + * bash-3.0-warn-locale.patch + * bash-3.2-printf.patch + * bash-4.0-setlocale.dif + * bash-4.1-completion.dif + * bash-4.2-nscdunmap.dif + * bash-4.3-2.4.4.patch + * bash-4.3-loadables.dif +- Port patch bash-5.1.dif and rename it to bash-5.2.dif + +------------------------------------------------------------------- @@ -2126 +2275 @@ - * There is a new confgure option that forces the extglob option to be + * There is a new configure option that forces the extglob option to be @@ -2158 +2307 @@ - to rewite or modify filenames read from the file system before they are + to rewrite or modify filenames read from the file system before they are Old: ---- bash-5.1-patches.tar.bz2 bash-5.1.dif bash-5.1.tar.gz bash-5.1.tar.gz.sig New: ---- bash-5.2-patches.tar.bz2 bash-5.2.dif bash-5.2.tar.gz bash-5.2.tar.gz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bash.spec ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:20.673485163 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:20.677485170 +0200 @@ -21,9 +21,11 @@ %else %bcond_without alternatives %endif +# Unicode tests do alloc to much memory +%bcond_with altarray %define bextend %{nil} -%define bversion 5.1 +%define bversion 5.2 %define bpatchlvl %(bash %{_sourcedir}/get_version_number.sh %{_sourcedir}) %global _incdir %{_includedir} %global _ldldir %{_libdir}/bash @@ -87,6 +89,8 @@ BuildRequires: autoconf BuildRequires: bison BuildRequires: fdupes +BuildRequires: glibc-locale +BuildRequires: glibc-locale-base BuildRequires: makeinfo BuildRequires: patchutils BuildRequires: pkgconfig @@ -98,7 +102,7 @@ BuildRequires: pkgconfig(audit) BuildRequires: pkgconfig(ncurses) # This has to be always the same version as included in the bash its self -BuildRequires: pkgconfig(readline) = 8.1 +BuildRequires: pkgconfig(readline) = 8.2 %if %{with alternatives} Requires(post): update-alternatives Requires(preun):update-alternatives @@ -139,6 +143,7 @@ Provides: alternative(sh) Conflicts: alternative(sh) PreReq: bash = %{version} +BuildArch: noarch %description sh Use bash as /bin/sh implementation. @@ -217,6 +222,7 @@ Requires: bash = %{version}-%{release} Requires: this-is-only-for-build-envs Conflicts: rpmlib(X-CheckUnifiedSystemdir) +BuildArch: noarch %description legacybin Legacy usrmove helper files for the build system. Do not install. @@ -230,6 +236,7 @@ %endif %setup -q -n bash-%{bversion}%{bextend} -b1 typeset -i level +set +x for patch in ../bash-%{bversion}-patches/*-*[0-9]; do test -e $patch || break @@ -244,6 +251,7 @@ echo Patch $patch patch -s -p$level < $patch done +set -x %patch1 -b .manual %patch3 -b .2.4.4 %patch4 -b .evalexp @@ -393,6 +401,7 @@ --enable-minimal-config \ --enable-arith-for-command \ --enable-array-variables \ + --disable-alt-array-implementation \ --enable-brace-expansion \ --enable-casemod-attributes \ --enable-casemod-expansion \ @@ -410,8 +419,8 @@ --disable-strict-posix-default \ --enable-separate-helpfiles=%{_datadir}/bash/helpfiles \ $READLINE - make Program=sh sh - make distclean + %make_build Program=sh sh + %make_build distclean %endif ./configure --build=%{_target_cpu}-suse-linux \ --prefix=%{_prefix} \ @@ -423,6 +432,7 @@ --with-afs \ --with-gnu-ld \ $SYSMALLOC \ + --enable-threads=posix \ --enable-job-control \ --enable-net-redirections \ --enable-alias \ @@ -436,10 +446,16 @@ --enable-help-builtin \ --enable-separate-helpfiles \ --enable-array-variables \ +%if %{with altarray} + --enable-alt-array-implementation \ +%else + --disable-alt-array-implementation \ +%endif --enable-brace-expansion \ --enable-command-timing \ --enable-disabled-builtins \ --enable-glob-asciiranges-default \ + --enable-translatable-strings \ --disable-strict-posix-default \ --enable-multibyte \ --enable-separate-helpfiles=%{_datadir}/bash/helpfiles \ @@ -457,7 +473,7 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! env -i HOME=$PWD TERM=$TERM LD_LIBRARY_PATH=$LD_RUN_PATH TMPDIR=$TMPDIR \ SCREENRC=$SCREENRC SCREENDIR=$SCREENDIR \ - screen -D -m %make_build TESTSCRIPT=%{SOURCE4} check + screen -D -m %make_build -j1 TESTSCRIPT=%{SOURCE4} check kill -TERM $pid %if 0%{?do_profiling} rm -f jobs.gcda @@ -467,6 +483,10 @@ %make_build $makeopts "$profilecflags" all %make_build $makeopts -C examples/loadables/ %make_build $makeopts documentation + grep -F '$'\' doc/bash.html %{nil:test for boo#1203091} + +%check + %make_build -j1 check %install %make_install @@ -528,6 +548,7 @@ %find_lang bash %fdupes -s %{buildroot}%{_datadir}/bash/helpfiles sed -ri '1{ s@/bin/sh@/bin/bash@ }' %{buildroot}%{_bindir}/bashbug + strip --strip-unneeded %{buildroot}%{_bindir}/bash %if %{with alternatives} %post -p %{_bindir}/bash ++++++ bash-2.03-manual.patch ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:20.713485226 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:20.717485233 +0200 @@ -19,7 +19,7 @@ .B \-D A list of all double-quoted strings preceded by \fB$\fP is printed on the standard output. -@@ -7382,6 +7388,11 @@ Apply the following `\fBs\fP' modifier o +@@ -7667,6 +7673,11 @@ Apply the following `\fBs\fP' modifier o .SH "SHELL BUILTIN COMMANDS" .\" start of bash_builtins .zZ @@ -31,7 +31,7 @@ .PP Unless otherwise noted, each builtin command documented in this section as accepting options preceded by -@@ -11081,6 +11092,11 @@ process or job waited for. +@@ -11543,6 +11554,11 @@ process or job waited for. .SH "RESTRICTED SHELL" .\" rbash.1 .zY ++++++ bash-3.0-evalexp.patch ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:20.729485252 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:20.733485258 +0200 @@ -4,7 +4,7 @@ --- expr.c +++ expr.c 2018-11-29 08:10:59.542212175 +0000 -@@ -512,8 +512,8 @@ expassign () +@@ -514,8 +514,8 @@ expassign () value = expcond (); if (curtok == EQ || curtok == OP_ASSIGN) { ++++++ bash-3.0-warn-locale.patch ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:20.745485277 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:20.749485284 +0200 @@ -15,7 +15,7 @@ #include "chartypes.h" #include <errno.h> -@@ -77,6 +81,15 @@ void +@@ -79,6 +83,15 @@ void set_default_locale () { #if defined (HAVE_SETLOCALE) ++++++ bash-3.2-printf.patch ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:20.757485296 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:20.761485303 +0200 @@ -1,10 +1,10 @@ --- - builtins/printf.def | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) + builtins/printf.def | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) --- builtins/printf.def -+++ builtins/printf.def 2018-11-29 08:11:53.901189708 +0000 -@@ -54,6 +54,7 @@ error occurs. ++++ builtins/printf.def 2022-06-22 06:26:14.069158235 +0000 +@@ -56,6 +56,7 @@ error occurs. $END #include <config.h> @@ -12,26 +12,39 @@ #include "../bashtypes.h" -@@ -661,12 +662,20 @@ printf_builtin (list) +@@ -702,7 +703,7 @@ printf_builtin (list) case 'A': #endif { - char *f; + char *f, *lce = getenv("LC_NUMERIC"), *lcl = setlocale(LC_NUMERIC, NULL); - floatmax_t p; - p = getfloatmax (); - f = mklong (start, FLOATMAX_CONV, sizeof(FLOATMAX_CONV) - 1); + if (use_Lmod || posixly_correct == 0) + { +@@ -710,7 +711,12 @@ printf_builtin (list) + + p = getfloatmax (); + f = mklong (start, "L", 1); + -+ if (lce && lcl) -+ setlocale(LC_NUMERIC, lce); ++ if (lce && lcl) setlocale(LC_NUMERIC, lce); + - PF (f, p); + PF (f, p); + -+ if (lce && lcl) -+ setlocale(LC_NUMERIC, lcl); ++ if (lce && lcl) setlocale(LC_NUMERIC, lcl); + } + else /* posixly_correct */ + { +@@ -718,7 +724,12 @@ printf_builtin (list) + + p = getdouble (); + f = mklong (start, "", 0); + - break; - } ++ if (lce && lcl) setlocale(LC_NUMERIC, lce); ++ + PF (f, p); ++ ++ if (lce && lcl) setlocale(LC_NUMERIC, lcl); + } + break; ++++++ bash-4.0-setlocale.dif ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:20.773485322 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:20.777485328 +0200 @@ -4,7 +4,7 @@ --- locale.c +++ locale.c 2018-09-20 08:14:41.307485537 +0000 -@@ -55,6 +55,7 @@ extern int dump_translatable_strings, du +@@ -57,6 +57,7 @@ extern int dump_translatable_strings, du /* The current locale when the program begins */ static char *default_locale; @@ -12,7 +12,7 @@ /* The current domain for textdomain(3). */ static char *default_domain; -@@ -359,11 +360,21 @@ get_locale_var (var) +@@ -361,11 +362,21 @@ get_locale_var (var) if (locale == 0 || *locale == 0) locale = lang; if (locale == 0 || *locale == 0) ++++++ bash-4.1-bash.bashrc.dif ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:20.789485347 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:20.793485353 +0200 @@ -16,11 +16,11 @@ |other files as well even if the bash does not. | --- - doc/bash.1 | 15 ++++++++++++--- - 1 file changed, 12 insertions(+), 3 deletions(-) + doc/bash.1 | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) --- doc/bash.1 -+++ doc/bash.1 2018-09-20 08:16:12.073822864 +0000 ++++ doc/bash.1 2022-06-22 06:31:11.283670836 +0000 @@ -330,6 +330,8 @@ and executes commands from the first one The .B \-\-noprofile @@ -52,13 +52,14 @@ .PP When .B bash -@@ -431,7 +439,8 @@ daemon, usually \fIrshd\fP, or the secur +@@ -432,8 +440,8 @@ or the secure shell daemon \fIsshd\fP. If .B bash - determines it is being run in this fashion, it reads and executes --commands from \fI~/.bashrc\fP, if that file exists and is readable. -+commands from \fI/etc/bash.bashrc\fP then \fI~/.bashrc\fP when -+those files exist and are readable. + determines it is being run non-interactively in this fashion, +-it reads and executes commands from \fI~/.bashrc\fP, +-if that file exists and is readable. ++it reads and executes commands from \fI/etc/bash.bashrc\fP then ++\fI~/.bashrc\fP, when those files exists and are readable. It will not do this if invoked as \fBsh\fP. The .B \-\-norc ++++++ bash-4.1-completion.dif ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:20.809485379 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:20.809485379 +0200 @@ -4,7 +4,7 @@ --- bashline.c +++ bashline.c 2018-11-29 08:12:25.876588305 +0000 -@@ -2128,6 +2128,13 @@ globword: +@@ -2206,6 +2206,13 @@ globword: return ((char *)NULL); } ++++++ bash-4.2-nscdunmap.dif ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:20.825485404 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:20.829485410 +0200 @@ -12,7 +12,7 @@ # include <unistd.h> #endif -@@ -1855,6 +1856,28 @@ init_interactive_script () +@@ -1888,6 +1893,28 @@ init_interactive_script () #endif } @@ -41,7 +41,7 @@ void get_current_user_info () { -@@ -1886,6 +1909,7 @@ get_current_user_info () +@@ -1919,6 +1946,7 @@ get_current_user_info () #if defined (HAVE_GETPWENT) endpwent (); #endif ++++++ bash-4.3-2.4.4.patch ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:20.841485429 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:20.845485436 +0200 @@ -11,7 +11,7 @@ --- array.c +++ array.c 2020-10-12 16:00:37.207185803 +0000 -@@ -1028,7 +1028,7 @@ char *s, *sep; +@@ -1095,7 +1095,7 @@ char *s, *sep; * To make a running version, compile -DTEST_ARRAY and link with: * xmalloc.o syntax.o lib/malloc/libmalloc.a lib/sh/libsh.a */ @@ -54,7 +54,7 @@ signal_is_trapped (s) --- jobs.c +++ jobs.c 2020-10-12 16:00:37.267184666 +0000 -@@ -2223,6 +2223,15 @@ make_child (command, flags) +@@ -2212,6 +2212,15 @@ make_child (command, flags) child process, go back and change callers who free `command' in the child process when this returns. */ mypid = getpid (); @@ -87,7 +87,7 @@ static SigHandler *old_winch = (SigHandler *)SIG_DFL; --- sig.h +++ sig.h 2020-10-12 16:03:44.403637781 +0000 -@@ -109,8 +109,8 @@ do { \ +@@ -105,8 +105,8 @@ do { \ extern volatile sig_atomic_t sigwinch_received; extern volatile sig_atomic_t sigterm_received; ++++++ bash-4.3-loadables.dif ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:20.869485474 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:20.873485481 +0200 @@ -29,7 +29,7 @@ r = finfo_main (c, v); --- examples/loadables/head.c +++ examples/loadables/head.c 2018-09-20 08:07:43.739129083 +0000 -@@ -99,8 +99,6 @@ head_builtin (list) +@@ -101,8 +101,6 @@ head_builtin (list) WORD_LIST *l; FILE *fp; ++++++ bash-5.1-patches.tar.bz2 -> bash-5.2-patches.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-001 new/bash-5.2-patches/bash51-001 --- old/bash-5.1-patches/bash51-001 2022-01-14 12:59:38.385193178 +0100 +++ new/bash-5.2-patches/bash51-001 1970-01-01 01:00:00.000000000 +0100 @@ -1,80 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-001 - -Bug-Reported-by: Fazal Majid <[email protected]> -Bug-Reference-ID: <[email protected]> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2020-12/msg00000.html - -Bug-Description: - -There is a missing dependency on a constructed file, which can cause highly -parellel builds to fail. - -Patch (apply with `patch -p0'): - -*** Makefile.in 2020-12-04 09:51:19.000000000 -0500 ---- Makefile.in 2020-12-16 11:28:36.000000000 -0500 -*************** -*** 1316,1319 **** ---- 1316,1320 ---- - bashline.o: pcomplete.h ${BASHINCDIR}/chartypes.h input.h - bashline.o: ${BASHINCDIR}/shmbutil.h ${BASHINCDIR}/shmbchar.h -+ bashline.o: ${DEFDIR}/builtext.h - bracecomp.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h - bracecomp.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h -*************** -*** 1436,1439 **** ---- 1437,1441 ---- - builtins/evalstring.o: jobs.h builtins.h flags.h input.h execute_cmd.h - builtins/evalstring.o: bashhist.h $(DEFSRC)/common.h pathnames.h -+ builtins/evalstring.o: ${DEFDIR}/builtext.h - builtins/getopt.o: config.h ${BASHINCDIR}/memalloc.h - builtins/getopt.o: shell.h syntax.h bashjmp.h command.h general.h xmalloc.h error.h - -*** builtins/Makefile.in 2019-07-25 08:03:45.000000000 -0400 ---- builtins/Makefile.in 2020-12-16 11:29:29.000000000 -0500 -*************** -*** 362,366 **** - evalstring.o: $(topdir)/flags.h $(topdir)/input.h $(topdir)/execute_cmd.h - evalstring.o: $(topdir)/bashhist.h $(srcdir)/common.h -! evalstring.o: $(topdir)/trap.h $(topdir)/redir.h ../pathnames.h - #evalstring.o: $(topdir)/y.tab.h - getopt.o: ../config.h $(BASHINCDIR)/memalloc.h ---- 362,366 ---- - evalstring.o: $(topdir)/flags.h $(topdir)/input.h $(topdir)/execute_cmd.h - evalstring.o: $(topdir)/bashhist.h $(srcdir)/common.h -! evalstring.o: $(topdir)/trap.h $(topdir)/redir.h ../pathnames.h ./builtext.h - #evalstring.o: $(topdir)/y.tab.h - getopt.o: ../config.h $(BASHINCDIR)/memalloc.h - -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 1,5 **** - /* patchlevel.h -- current bash patch level */ - -! /* Copyright (C) 2001-2016 Free Software Foundation, Inc. - - This file is part of GNU Bash, the Bourne Again SHell. ---- 1,5 ---- - /* patchlevel.h -- current bash patch level */ - -! /* Copyright (C) 2001-2020 Free Software Foundation, Inc. - - This file is part of GNU Bash, the Bourne Again SHell. -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 0 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 1 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-001.sig and new/bash-5.2-patches/bash51-001.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-002 new/bash-5.2-patches/bash51-002 --- old/bash-5.1-patches/bash51-002 2022-01-14 12:59:38.445192022 +0100 +++ new/bash-5.2-patches/bash51-002 1970-01-01 01:00:00.000000000 +0100 @@ -1,57 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-002 - -Bug-Reported-by: [email protected] -Bug-Reference-ID: <cah7i3lohfua4asf5-ad2r80hg-p-yzd_9zxomarzkhp8nmq...@mail.gmail.com> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2020-12/msg00037.html - -Bug-Description: - -If there are no jobs, and the `-n' and `-p' options are both supplied to -`wait', bash can assign a value to the variable name specified with `-p' -instead of leaving it unset. - -Patch (apply with `patch -p0'): - -*** builtins/wait.def 2020-04-09 15:13:57.000000000 -0400 ---- builtins/wait.def 2020-12-11 09:46:49.000000000 -0500 -*************** -*** 214,222 **** - - status = wait_for_any_job (wflags, &pstat); -- if (status < 0) -- status = 127; -- - if (vname && status >= 0) - bind_var_to_int (vname, pstat.pid); - if (list) - unset_waitlist (); ---- 214,222 ---- - - status = wait_for_any_job (wflags, &pstat); - if (vname && status >= 0) - bind_var_to_int (vname, pstat.pid); -+ -+ if (status < 0) -+ status = 127; - if (list) - unset_waitlist (); - -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 1 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 2 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-002.sig and new/bash-5.2-patches/bash51-002.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-003 new/bash-5.2-patches/bash51-003 --- old/bash-5.1-patches/bash51-003 2022-01-14 12:59:38.457191792 +0100 +++ new/bash-5.2-patches/bash51-003 1970-01-01 01:00:00.000000000 +0100 @@ -1,53 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-003 - -Bug-Reported-by: [email protected] -Bug-Reference-ID: <cah7i3lpg91bnncdtatum2ph7a+pnjkuh6nac87cvl7_38to...@mail.gmail.com> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2020-12/msg00050.html - -Bug-Description: - -Bash does not put a command substitution process that is started to perform an -expansion in a child process into the right process group where it can receive -keyboard-generated signals. - -Patch (apply with `patch -p0'): - -*** subst.c 2020-11-16 10:33:15.000000000 -0500 ---- subst.c 2020-12-12 13:50:11.000000000 -0500 -*************** -*** 6357,6362 **** - #if defined (JOB_CONTROL) - old_pipeline_pgrp = pipeline_pgrp; -! /* Don't reset the pipeline pgrp if we're already a subshell in a pipeline. */ -! if ((subshell_environment & SUBSHELL_PIPE) == 0) - pipeline_pgrp = shell_pgrp; - cleanup_the_pipeline (); ---- 6357,6364 ---- - #if defined (JOB_CONTROL) - old_pipeline_pgrp = pipeline_pgrp; -! /* Don't reset the pipeline pgrp if we're already a subshell in a pipeline or -! we've already forked to run a disk command (and are expanding redirections, -! for example). */ -! if ((subshell_environment & (SUBSHELL_FORK|SUBSHELL_PIPE)) == 0) - pipeline_pgrp = shell_pgrp; - cleanup_the_pipeline (); - -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 2 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 3 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-003.sig and new/bash-5.2-patches/bash51-003.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-004 new/bash-5.2-patches/bash51-004 --- old/bash-5.1-patches/bash51-004 2022-01-14 12:59:38.465191637 +0100 +++ new/bash-5.2-patches/bash51-004 1970-01-01 01:00:00.000000000 +0100 @@ -1,126 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-004 - -Bug-Reported-by: [email protected] -Bug-Reference-ID: <CAH7i3LoHGmwaghDpCWRUfcY04gQmeDTH3RiG=bf2b=KbU=g...@mail.gmail.com> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2020-12/msg00039.html - -Bug-Description: - -If a key-value compound array assignment to an associative array is supplied -as an assignment statement argument to the `declare' command that declares the -array, the assignment doesn't perform the correct word expansions. - -This patch makes key-value assignment and subscript assignment perform the -same expansions when they're supplied as an argument to `declare'. - -Patch (apply with `patch -p0'): - -*** arrayfunc.c 2020-10-09 11:38:58.000000000 -0400 ---- arrayfunc.c 2020-12-11 15:12:22.000000000 -0500 -*************** -*** 598,601 **** ---- 598,622 ---- - } - } -+ -+ /* Return non-zero if L appears to be a key-value pair associative array -+ compound assignment. */ -+ int -+ kvpair_assignment_p (l) -+ WORD_LIST *l; -+ { -+ return (l && (l->word->flags & W_ASSIGNMENT) == 0 && l->word->word[0] != '['); /*]*/ -+ } -+ -+ char * -+ expand_and_quote_kvpair_word (w) -+ char *w; -+ { -+ char *t, *r; -+ -+ t = w ? expand_assignment_string_to_string (w, 0) : 0; -+ r = sh_single_quote (t ? t : ""); -+ free (t); -+ return r; -+ } - #endif - -*************** -*** 641,645 **** - - #if ASSOC_KVPAIR_ASSIGNMENT -! if (assoc_p (var) && nlist && (nlist->word->flags & W_ASSIGNMENT) == 0 && nlist->word->word[0] != '[') /*]*/ - { - iflags = flags & ~ASS_APPEND; ---- 662,666 ---- - - #if ASSOC_KVPAIR_ASSIGNMENT -! if (assoc_p (var) && kvpair_assignment_p (nlist)) - { - iflags = flags & ~ASS_APPEND; -*** arrayfunc.h 2020-04-29 17:24:15.000000000 -0400 ---- arrayfunc.h 2020-12-11 14:23:50.000000000 -0500 -*************** -*** 68,71 **** ---- 68,74 ---- - extern void quote_compound_array_list PARAMS((WORD_LIST *, int)); - -+ extern int kvpair_assignment_p PARAMS((WORD_LIST *)); -+ extern char *expand_and_quote_kvpair_word PARAMS((char *)); -+ - extern int unbind_array_element PARAMS((SHELL_VAR *, char *, int)); - extern int skipsubscript PARAMS((const char *, int, int)); -*** subst.c 2020-11-16 10:33:15.000000000 -0500 ---- subst.c 2020-12-11 15:11:10.000000000 -0500 -*************** -*** 11605,11608 **** ---- 11605,11609 ---- - WORD_LIST *l, *nl; - char *t; -+ int kvpair; - - if (flags == 0) -*************** -*** 11619,11622 **** ---- 11620,11627 ---- - /* Associative array */ - l = parse_string_to_word_list (value, 1, "array assign"); -+ #if ASSOC_KVPAIR_ASSIGNMENT -+ kvpair = kvpair_assignment_p (l); -+ #endif -+ - /* For associative arrays, with their arbitrary subscripts, we have to - expand and quote in one step so we don't have to search for the -*************** -*** 11624,11627 **** ---- 11629,11638 ---- - for (nl = l; nl; nl = nl->next) - { -+ #if ASSOC_KVPAIR_ASSIGNMENT -+ if (kvpair) -+ /* keys and values undergo the same set of expansions */ -+ t = expand_and_quote_kvpair_word (nl->word->word); -+ else -+ #endif - if ((nl->word->flags & W_ASSIGNMENT) == 0) - t = sh_single_quote (nl->word->word ? nl->word->word : ""); - -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 3 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 4 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-004.sig and new/bash-5.2-patches/bash51-004.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-005 new/bash-5.2-patches/bash51-005 --- old/bash-5.1-patches/bash51-005 2022-01-14 12:59:38.477191404 +0100 +++ new/bash-5.2-patches/bash51-005 1970-01-01 01:00:00.000000000 +0100 @@ -1,100 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-005 - -Bug-Reported-by: Alexander Mescheryakov <[email protected]>, - konsolebox <[email protected]> -Bug-Reference-ID: <[email protected]>, - <cajnmqwavs7m6nbqzzchy5c2+yhkteg7p+o8zwua7sn+6n1q...@mail.gmail.com> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2021-01/msg00082.html, - https://lists.gnu.org/archive/html/bug-bash/2021-04/msg00160.html - -Bug-Description: - -Fix two memory leaks when assigning arrays using compound assignment syntax. - -Patch (apply with `patch -p0'): - -*** subst.c 2020-12-16 17:01:32.000000000 -0500 ---- subst.c 2021-01-24 17:48:40.000000000 -0500 -*************** -*** 11674,11677 **** ---- 11674,11679 ---- - - value = string_list (l); -+ dispose_words (l); -+ - wlen = STRLEN (value); - -*** arrayfunc.c 2020-12-16 17:01:32.000000000 -0500 ---- arrayfunc.c 2021-04-19 16:43:09.000000000 -0400 -*************** -*** 565,574 **** - WORD_LIST *list; - char *akey, *aval, *k, *v; -- int free_aval; - - for (list = nlist; list; list = list->next) - { -- free_aval = 0; -- - k = list->word->word; - v = list->next ? list->next->word->word : 0; ---- 565,571 ---- -*************** -*** 578,583 **** - - akey = expand_assignment_string_to_string (k, 0); -- aval = expand_assignment_string_to_string (v, 0); -- - if (akey == 0 || *akey == 0) - { ---- 575,578 ---- -*************** -*** 586,599 **** - continue; - } - if (aval == 0) - { - aval = (char *)xmalloc (1); - aval[0] = '\0'; /* like do_assignment_internal */ -- free_aval = 1; - } - - bind_assoc_var_internal (var, h, akey, aval, flags); -! if (free_aval) -! free (aval); - } - } ---- 581,594 ---- - continue; - } -+ -+ aval = expand_assignment_string_to_string (v, 0); - if (aval == 0) - { - aval = (char *)xmalloc (1); - aval[0] = '\0'; /* like do_assignment_internal */ - } - - bind_assoc_var_internal (var, h, akey, aval, flags); -! free (aval); - } - } -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 4 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 5 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-005.sig and new/bash-5.2-patches/bash51-005.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-006 new/bash-5.2-patches/bash51-006 --- old/bash-5.1-patches/bash51-006 2022-01-14 12:59:38.493191097 +0100 +++ new/bash-5.2-patches/bash51-006 1970-01-01 01:00:00.000000000 +0100 @@ -1,48 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-006 - -Bug-Reported-by: [email protected] -Bug-Reference-ID: <cah7i3loy7c+pv_yg2lxwpntaw3kirkxmb4kcl1dtsih0u2b...@mail.gmail.com> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2020-12/msg00108.html - -Bug-Description: - -Make sure child processes forked to run command substitutions are in the -proper process group. - -Patch (apply with `patch -p0'): - -*** subst.c 2020-12-16 17:01:32.000000000 -0500 ---- subst.c 2020-12-25 19:20:25.000000000 -0500 -*************** -*** 6413,6416 **** ---- 6413,6423 ---- - interactive = 0; - -+ #if defined (JOB_CONTROL) -+ /* Invariant: in child processes started to run command substitutions, -+ pipeline_pgrp == shell_pgrp. Other parts of the shell assume this. */ -+ if (pipeline_pgrp > 0 && pipeline_pgrp != shell_pgrp) -+ shell_pgrp = pipeline_pgrp; -+ #endif -+ - set_sigint_handler (); /* XXX */ - -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 5 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 6 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-006.sig and new/bash-5.2-patches/bash51-006.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-007 new/bash-5.2-patches/bash51-007 --- old/bash-5.1-patches/bash51-007 2022-01-14 12:59:38.501190943 +0100 +++ new/bash-5.2-patches/bash51-007 1970-01-01 01:00:00.000000000 +0100 @@ -1,95 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-007 - -Bug-Reported-by: Tom Tromey <[email protected]> -Bug-Reference-ID: <[email protected]> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2021-01/msg00009.html - -Bug-Description: - -The code to check readline versions in an inputrc file had the sense of the -comparisons reversed. - -Patch (apply with `patch -p0'): - -*** lib/readline/bind.c 2020-10-26 10:03:14.000000000 -0400 ---- lib/readline/bind.c 2021-01-18 16:38:48.000000000 -0500 -*************** -*** 1235,1239 **** - else if (_rl_strnicmp (args, "version", 7) == 0) - { -! int rlversion, versionarg, op, previ, major, minor; - - _rl_parsing_conditionalized_out = 1; ---- 1235,1239 ---- - else if (_rl_strnicmp (args, "version", 7) == 0) - { -! int rlversion, versionarg, op, previ, major, minor, opresult; - - _rl_parsing_conditionalized_out = 1; -*************** -*** 1295,1316 **** - { - case OP_EQ: -! _rl_parsing_conditionalized_out = rlversion == versionarg; - break; - case OP_NE: -! _rl_parsing_conditionalized_out = rlversion != versionarg; - break; - case OP_GT: -! _rl_parsing_conditionalized_out = rlversion > versionarg; - break; - case OP_GE: -! _rl_parsing_conditionalized_out = rlversion >= versionarg; - break; - case OP_LT: -! _rl_parsing_conditionalized_out = rlversion < versionarg; - break; - case OP_LE: -! _rl_parsing_conditionalized_out = rlversion <= versionarg; - break; - } - } - /* Check to see if the first word in ARGS is the same as the ---- 1295,1317 ---- - { - case OP_EQ: -! opresult = rlversion == versionarg; - break; - case OP_NE: -! opresult = rlversion != versionarg; - break; - case OP_GT: -! opresult = rlversion > versionarg; - break; - case OP_GE: -! opresult = rlversion >= versionarg; - break; - case OP_LT: -! opresult = rlversion < versionarg; - break; - case OP_LE: -! opresult = rlversion <= versionarg; - break; - } -+ _rl_parsing_conditionalized_out = 1 - opresult; - } - /* Check to see if the first word in ARGS is the same as the -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 6 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 7 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-007.sig and new/bash-5.2-patches/bash51-007.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-008 new/bash-5.2-patches/bash51-008 --- old/bash-5.1-patches/bash51-008 2022-01-14 12:59:38.517190634 +0100 +++ new/bash-5.2-patches/bash51-008 1970-01-01 01:00:00.000000000 +0100 @@ -1,61 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-008 - -Bug-Reported-by: Michael Felt <[email protected]> -Bug-Reference-ID: <[email protected]> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2021-03/msg00028.html - -Bug-Description: - -Process substitution FIFOs opened by child processes as targets of redirections -were not removed appropriately, leaving remnants in the file system. - -Patch (apply with `patch -p0'): - -*** execute_cmd.c 2020-10-12 10:16:13.000000000 -0400 ---- execute_cmd.c 2021-05-04 11:12:39.000000000 -0400 -*************** -*** 5557,5565 **** - /* Try to remove named pipes that may have been created as the - result of redirections. */ -! unlink_fifo_list (); - #endif /* PROCESS_SUBSTITUTION */ - exit (EXECUTION_FAILURE); - } - - if (async) - interactive = old_interactive; ---- 5557,5571 ---- - /* Try to remove named pipes that may have been created as the - result of redirections. */ -! unlink_all_fifos (); - #endif /* PROCESS_SUBSTITUTION */ - exit (EXECUTION_FAILURE); - } - -+ #if defined (PROCESS_SUBSTITUTION) && !defined (HAVE_DEV_FD) -+ /* This should only contain FIFOs created as part of redirection -+ expansion. */ -+ unlink_all_fifos (); -+ #endif -+ - if (async) - interactive = old_interactive; -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 7 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 8 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-008.sig and new/bash-5.2-patches/bash51-008.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-009 new/bash-5.2-patches/bash51-009 --- old/bash-5.1-patches/bash51-009 2022-01-14 12:59:38.529190402 +0100 +++ new/bash-5.2-patches/bash51-009 1970-01-01 01:00:00.000000000 +0100 @@ -1,59 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-009 - -Bug-Reported-by: Julien Moutinho <[email protected]> -Bug-Reference-ID: <[email protected]> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2021-10/msg00022.html - -Bug-Description: - -The bash malloc implementation of malloc_usable_size() does not follow the -specification. This can cause library functions that use it to overwrite -memory bounds checking. - -Patch (apply with `patch -p0'): - -*** lib/malloc/malloc.c 2020-07-08 10:19:30.000000000 -0400 ---- lib/malloc/malloc.c 2021-10-05 16:10:55.000000000 -0400 -*************** -*** 1287,1297 **** - } - -! /* XXX - should we return 0 if ISFREE? */ -! maxbytes = binsize(p->mh_index); -! -! /* So the usable size is the maximum number of bytes in the bin less the -! malloc overhead */ -! maxbytes -= MOVERHEAD + MSLOP; -! return (maxbytes); - } - ---- 1358,1367 ---- - } - -! /* return 0 if ISFREE */ -! if (p->mh_alloc == ISFREE) -! return 0; -! -! /* Since we use bounds checking, the usable size is the last requested size. */ -! return (p->mh_nbytes); - } - -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 8 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 9 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-009.sig and new/bash-5.2-patches/bash51-009.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-010 new/bash-5.2-patches/bash51-010 --- old/bash-5.1-patches/bash51-010 2022-01-14 12:59:38.541190171 +0100 +++ new/bash-5.2-patches/bash51-010 1970-01-01 01:00:00.000000000 +0100 @@ -1,59 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-010 - -Bug-Reported-by: Jonas Alfredsson <[email protected]> -Bug-Reference-ID: <LjAfZaEuZncr2RaqhSSfcaiXdkuK6kdEYxshP3LApXbgMVQzggMGyWHO9knVkXicW2fP-ibsipJ_GZ-YaJRm96Rsozf6PgFmPsljRCtflls=@protonmail.com> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2021-05/msg00059.html - -Bug-Description: - -If `wait -n' is interrupted by a trapped signal other than SIGINT, it does -not completely clean up state, and that can prevent subsequent calls to -`wait -n' from working correctly. - -Patch (apply with `patch -p0'): - -*** builtins/wait.def 2020-12-16 17:13:12.000000000 -0500 ---- builtins/wait.def 2021-11-17 10:25:15.000000000 -0500 -*************** -*** 112,116 **** - WORD_LIST *list; - { -! int status, code, opt, nflag, wflags; - char *vname; - SHELL_VAR *pidvar; ---- 112,117 ---- - WORD_LIST *list; - { -! int status, code, opt, nflag; -! volatile int wflags; - char *vname; - SHELL_VAR *pidvar; -*************** -*** 181,184 **** ---- 188,193 ---- - status = 128 + wait_signal_received; - wait_sigint_cleanup (); -+ if (wflags & JWAIT_WAITING) -+ unset_waitlist (); - WAIT_RETURN (status); - } - -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 9 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 10 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-010.sig and new/bash-5.2-patches/bash51-010.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-011 new/bash-5.2-patches/bash51-011 --- old/bash-5.1-patches/bash51-011 2022-01-14 12:59:38.553189940 +0100 +++ new/bash-5.2-patches/bash51-011 1970-01-01 01:00:00.000000000 +0100 @@ -1,81 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-011 - -Bug-Reported-by: Alex fxmbsw7 Ratchev <[email protected]> -Bug-Reference-ID: <CAALKErFrm+yuwy=iok+rmjciwxtdmzemfwqlf2bewytkgs5...@mail.gmail.com> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2020-11/msg00064.html - -Bug-Description: - -When reading a compound assignment, and running it through the parser to -split it into words, we need to save and restore any alias we're currently -expanding. - -Patch (apply with `patch -p0'): - -*** parse.y 2020-11-28 12:10:06.000000000 -0500 ---- parse.y 2021-10-13 11:04:27.000000000 -0400 -*************** -*** 6494,6501 **** - - push_stream (1); -- #if 0 /* TAG: bash-5.2 Alex fxmbsw7 Ratchev <[email protected]> 11/17/2020 */ - if (ea = expanding_alias ()) - parser_save_alias (); -- #endif - last_read_token = WORD; /* WORD to allow reserved words here */ - current_command_line_count = 0; ---- 6494,6499 ---- -*************** -*** 6532,6539 **** - pop_stream (); - -- #if 0 /* TAG: bash-5.2 */ - if (ea) - parser_restore_alias (); -- #endif - - #if defined (HISTORY) ---- 6530,6535 ---- -*** y.tab.c 2020-11-28 12:17:19.000000000 -0500 ---- y.tab.c 2021-11-17 10:47:35.000000000 -0500 -*************** -*** 8788,8795 **** - - push_stream (1); -- #if 0 /* TAG: bash-5.2 Alex fxmbsw7 Ratchev <[email protected]> 11/17/2020 */ - if (ea = expanding_alias ()) - parser_save_alias (); -- #endif - last_read_token = WORD; /* WORD to allow reserved words here */ - current_command_line_count = 0; ---- 8777,8782 ---- -*************** -*** 8826,8833 **** - pop_stream (); - -- #if 0 /* TAG: bash-5.2 */ - if (ea) - parser_restore_alias (); -- #endif - - #if defined (HISTORY) ---- 8813,8818 ---- -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 10 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 11 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-011.sig and new/bash-5.2-patches/bash51-011.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-012 new/bash-5.2-patches/bash51-012 --- old/bash-5.1-patches/bash51-012 2022-01-14 12:59:38.569189632 +0100 +++ new/bash-5.2-patches/bash51-012 1970-01-01 01:00:00.000000000 +0100 @@ -1,198 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-012 - -Bug-Reported-by: Nikolay Borisov <[email protected]> -Bug-Reference-ID: <[email protected]> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2020-11/msg00091.html - -Bug-Description: - -There is a possible race condition that arises when a child process receives -a signal trapped by the parent before it can reset the signal dispositions. -The child process is not supposed to trap the signal in this circumstance. - -Patch (apply with `patch -p0'): - -*** ../bash-20201118/command.h 2020-08-14 15:04:39.000000000 -0400 ---- command.h 2020-11-27 15:18:02.000000000 -0500 -*************** -*** 125,128 **** ---- 125,129 ---- - #define SUBSHELL_COPROC 0x40 /* subshell from a coproc pipeline */ - #define SUBSHELL_RESETTRAP 0x80 /* subshell needs to reset trap strings on first call to trap */ -+ #define SUBSHELL_IGNTRAP 0x100 /* subshell should reset trapped signals from trap_handler */ - - /* A structure which represents a word. */ - -*** ../bash-20201118/execute_cmd.c 2020-11-23 14:16:48.000000000 -0500 ---- execute_cmd.c 2020-11-27 16:43:25.000000000 -0500 -*************** -*** 1548,1551 **** ---- 1548,1554 ---- - reset_signal_handlers (); - subshell_environment |= SUBSHELL_RESETTRAP; -+ /* Note that signal handlers have been reset, so we should no longer -+ reset the handler and resend trapped signals to ourselves. */ -+ subshell_environment &= ~SUBSHELL_IGNTRAP; - - /* We are in a subshell, so forget that we are running a trap handler or -*************** -*** 4321,4325 **** - cmdflags |= CMD_NO_FORK; - -! subshell_environment = SUBSHELL_FORK; /* XXX */ - if (pipe_in != NO_PIPE || pipe_out != NO_PIPE) - subshell_environment |= SUBSHELL_PIPE; ---- 4324,4329 ---- - cmdflags |= CMD_NO_FORK; - -! /* We redo some of what make_child() does with SUBSHELL_IGNTRAP */ -! subshell_environment = SUBSHELL_FORK|SUBSHELL_IGNTRAP; /* XXX */ - if (pipe_in != NO_PIPE || pipe_out != NO_PIPE) - subshell_environment |= SUBSHELL_PIPE; -*************** -*** 4575,4578 **** ---- 4580,4584 ---- - reset_signal_handlers (); - subshell_environment |= SUBSHELL_RESETTRAP; -+ subshell_environment &= ~SUBSHELL_IGNTRAP; - - if (async) -*************** -*** 5515,5518 **** ---- 5521,5525 ---- - /* Cancel traps, in trap.c. */ - restore_original_signals (); -+ subshell_environment &= ~SUBSHELL_IGNTRAP; - - #if defined (JOB_CONTROL) - -*** ../bash-20201118/jobs.c 2020-08-04 10:17:39.000000000 -0400 ---- jobs.c 2020-11-27 16:39:56.000000000 -0500 -*************** -*** 2218,2221 **** ---- 2218,2223 ---- - pid_t mypid; - -+ subshell_environment |= SUBSHELL_IGNTRAP; -+ - /* If this ends up being changed to modify or use `command' in the - child process, go back and change callers who free `command' in -diff -rC 2 ../bash-20201118/nojobs.c nojobs.c -*** ../bash-20201118/nojobs.c 2020-07-08 10:11:25.000000000 -0400 ---- nojobs.c 2020-11-27 16:38:36.000000000 -0500 -*************** -*** 576,579 **** ---- 576,581 ---- - #endif - -+ subshell_environment |= SUBSHELL_IGNTRAP; -+ - default_tty_job_signals (); - } - -*** ../bash-20201118/sig.c 2020-11-23 13:22:17.000000000 -0500 ---- sig.c 2020-11-28 10:21:43.000000000 -0500 -*************** -*** 56,60 **** - #endif - -! extern void initialize_siglist (); - - #if !defined (JOB_CONTROL) ---- 56,61 ---- - #endif - -! extern void initialize_siglist PARAMS((void)); -! extern void set_original_signal PARAMS((int, SigHandler *)); - - #if !defined (JOB_CONTROL) -*************** -*** 256,259 **** ---- 257,267 ---- - XHANDLER(i) = oact.sa_handler; - XSAFLAGS(i) = oact.sa_flags; -+ -+ #if 0 -+ set_original_signal (XSIG(i), XHANDLER(i)); /* optimization */ -+ #else -+ set_original_signal (XSIG(i), act.sa_handler); /* optimization */ -+ #endif -+ - /* Don't do anything with signals that are ignored at shell entry - if the shell is not interactive. */ - -*** ../bash-20201118/subst.c 2020-11-16 10:33:15.000000000 -0500 ---- subst.c 2020-11-27 16:07:00.000000000 -0500 -*************** -*** 5952,5955 **** ---- 5952,5956 ---- - /* Cancel traps, in trap.c. */ - restore_original_signals (); /* XXX - what about special builtins? bash-4.2 */ -+ subshell_environment &= ~SUBSHELL_IGNTRAP; - QUIT; /* catch any interrupts we got post-fork */ - setup_async_signals (); -*************** -*** 6383,6386 **** ---- 6384,6388 ---- - QUIT; /* catch any interrupts we got post-fork */ - subshell_environment |= SUBSHELL_RESETTRAP; -+ subshell_environment &= ~SUBSHELL_IGNTRAP; - } - - -diff -rC 2 ../bash-20201118/trap.c trap.c -*** ../bash-20201118/trap.c 2020-11-28 12:04:07.000000000 -0500 ---- trap.c 2020-11-28 10:22:10.000000000 -0500 -*************** -*** 482,485 **** ---- 482,511 ---- - } - -+ /* This means we're in a subshell, but have not yet reset the handler for -+ trapped signals. We're not supposed to execute the trap in this situation; -+ we should restore the original signal and resend the signal to ourselves -+ to preserve the Posix "signal traps that are not being ignored shall be -+ set to the default action" semantics. */ -+ if ((subshell_environment & SUBSHELL_IGNTRAP) && trap_list[sig] != (char *)IGNORE_SIG) -+ { -+ sigset_t mask; -+ -+ /* Paranoia */ -+ if (original_signals[sig] == IMPOSSIBLE_TRAP_HANDLER) -+ original_signals[sig] = SIG_DFL; -+ -+ restore_signal (sig); -+ -+ /* Make sure we let the signal we just caught through */ -+ sigemptyset (&mask); -+ sigprocmask (SIG_SETMASK, (sigset_t *)NULL, &mask); -+ sigdelset (&mask, sig); -+ sigprocmask (SIG_SETMASK, &mask, (sigset_t *)NULL); -+ -+ kill (getpid (), sig); -+ -+ SIGRETURN (0); -+ } -+ - if ((sig >= NSIG) || - (trap_list[sig] == (char *)DEFAULT_SIG) || - -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 11 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 12 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-012.sig and new/bash-5.2-patches/bash51-012.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-013 new/bash-5.2-patches/bash51-013 --- old/bash-5.1-patches/bash51-013 2022-01-14 12:59:38.585189324 +0100 +++ new/bash-5.2-patches/bash51-013 1970-01-01 01:00:00.000000000 +0100 @@ -1,43 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-013 - -Bug-Reported-by: Anders Kaseorg <[email protected]> -Bug-Reference-ID: <[email protected]> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2021-11/msg00025.html - -Bug-Description: - -Bash did not always perform tilde expansion following an unquoted colon on -the rhs of an assignment statement in posix mode. - -Patch (apply with `patch -p0'): - -*** ../bash-20211028/subst.c 2021-10-18 16:09:58.000000000 -0400 ---- subst.c 2021-11-30 11:19:47.000000000 -0500 -*************** -*** 3826,3829 **** ---- 3826,3830 ---- - td.flags = W_ASSIGNRHS; - #endif -+ td.flags |= (W_NOGLOB|W_TILDEEXP); - td.word = savestring (string); - value = call_expand_word_internal (&td, quoted, 0, (int *)NULL, (int *)NULL); - -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 12 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 13 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-013.sig and new/bash-5.2-patches/bash51-013.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-014 new/bash-5.2-patches/bash51-014 --- old/bash-5.1-patches/bash51-014 2022-01-14 12:59:38.597189092 +0100 +++ new/bash-5.2-patches/bash51-014 1970-01-01 01:00:00.000000000 +0100 @@ -1,48 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-014 - -Bug-Reported-by: [email protected] -Bug-Reference-ID: -Bug-Reference-URL: https://savannah.gnu.org/patch/?10035 - -Bug-Description: - -Bash may produce corrupted input if a multibyte character spans a 512-byte -boundary while reading the output of a command substitution. - -Patch (apply with `patch -p0'): - -*** ../bash-20210217/subst.c 2021-02-03 10:32:08.000000000 -0500 ---- subst.c 2021-03-01 16:47:52.000000000 -0500 -*************** -*** 6243,6247 **** - /* punt on the hard case for now */ - memset (&ps, '\0', sizeof (mbstate_t)); -! mblen = mbrtowc (&wc, bufp-1, bufn+1, &ps); - if (MB_INVALIDCH (mblen) || mblen == 0 || mblen == 1) - istring[istring_index++] = c; ---- 6243,6247 ---- - /* punt on the hard case for now */ - memset (&ps, '\0', sizeof (mbstate_t)); -! mblen = mbrtowc (&wc, bufp-1, bufn, &ps); - if (MB_INVALIDCH (mblen) || mblen == 0 || mblen == 1) - istring[istring_index++] = c; - -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 13 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 14 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-014.sig and new/bash-5.2-patches/bash51-014.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-015 new/bash-5.2-patches/bash51-015 --- old/bash-5.1-patches/bash51-015 2022-01-14 12:59:38.613188786 +0100 +++ new/bash-5.2-patches/bash51-015 1970-01-01 01:00:00.000000000 +0100 @@ -1,49 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-015 - -Bug-Reported-by: Volodymyr Prodan <[email protected]> -Bug-Reference-ID: -Bug-Reference-URL: https://savannah.gnu.org/patch/?10076 - -Bug-Description: - -Patch (apply with `patch -p0'): - -There are some characters (e.g., cyrillic) that can't be displayed using -certain single-byte encodings (e.g., cp1251) because the negative signed -int is interpreted as EOF and not displayed. - -*** ../bash-20210524/lib/readline/display.c 2021-03-16 18:12:20.000000000 -0400 ---- lib/readline/display.c 2021-06-07 16:53:08.000000000 -0400 -*************** -*** 1599,1603 **** - - for (cur_face = FACE_NORMAL, i = 0; i < n; i++) -! putc_face (str[i], face[i], &cur_face); - putc_face (EOF, FACE_NORMAL, &cur_face); - } ---- 1599,1603 ---- - - for (cur_face = FACE_NORMAL, i = 0; i < n; i++) -! putc_face ((unsigned char) str[i], face[i], &cur_face); - putc_face (EOF, FACE_NORMAL, &cur_face); - } - -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 14 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 15 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-015.sig and new/bash-5.2-patches/bash51-015.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash51-016 new/bash-5.2-patches/bash51-016 --- old/bash-5.1-patches/bash51-016 2022-01-14 12:59:38.621188631 +0100 +++ new/bash-5.2-patches/bash51-016 1970-01-01 01:00:00.000000000 +0100 @@ -1,64 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 5.1 -Patch-ID: bash51-016 - -Bug-Reported-by: Vincent Menegaux <[email protected]> -Bug-Reference-ID: -Bug-Reference-URL: https://savannah.gnu.org/patch/?10070 - -Bug-Description: - -Multiple `!' tokens should toggle negation of an expression in a [[ -conditional command, instead of simply negating the expression. - -Patch (apply with `patch -p0'): - -*** ../bash-20210515/parse.y 2021-04-21 15:32:50.000000000 -0400 ---- parse.y 2021-05-24 11:53:30.000000000 -0400 -*************** -*** 4797,4801 **** - term = cond_term (); - if (term) -! term->flags |= CMD_INVERT_RETURN; - } - else if (tok == WORD && yylval.word->word[0] == '-' && yylval.word->word[1] && yylval.word->word[2] == 0 && test_unop (yylval.word->word)) ---- 4797,4801 ---- - term = cond_term (); - if (term) -! term->flags ^= CMD_INVERT_RETURN; - } - else if (tok == WORD && yylval.word->word[0] == '-' && yylval.word->word[1] && yylval.word->word[2] == 0 && test_unop (yylval.word->word)) - -*** ../bash-20210515/y.tab.c 2021-05-14 15:50:41.000000000 -0400 ---- y.tab.c 2021-05-24 16:35:55.000000000 -0400 -*************** -*** 7091,7095 **** - term = cond_term (); - if (term) -! term->flags |= CMD_INVERT_RETURN; - } - else if (tok == WORD && yylval.word->word[0] == '-' && yylval.word->word[1] && yylval.word->word[2] == 0 && test_unop (yylval.word->word)) ---- 7091,7095 ---- - term = cond_term (); - if (term) -! term->flags ^= CMD_INVERT_RETURN; - } - else if (tok == WORD && yylval.word->word[0] == '-' && yylval.word->word[1] && yylval.word->word[2] == 0 && test_unop (yylval.word->word)) - -*** patchlevel.h 2020-06-22 14:51:03.000000000 -0400 ---- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 15 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 16 - - #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash51-016.sig and new/bash-5.2-patches/bash51-016.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash52-001 new/bash-5.2-patches/bash52-001 --- old/bash-5.1-patches/bash52-001 1970-01-01 01:00:00.000000000 +0100 +++ new/bash-5.2-patches/bash52-001 2022-10-05 16:03:03.000000000 +0200 @@ -0,0 +1,46 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.2 +Patch-ID: bash52-001 + +Bug-Reported-by: Emanuele Torre <[email protected]> +Bug-Reference-ID: <caa7hnqer1esdigk8mjqsqjpo815jyog-ekz-5prajteyy2e...@mail.gmail.com> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-09/msg00060.html + +Bug-Description: + +Expanding unset arrays in an arithmetic context can cause a segmentation fault. + +Patch (apply with `patch -p0'): + +*** ../bash-5.2/subst.c 2022-08-31 17:36:46.000000000 -0400 +--- subst.c 2022-09-30 09:12:05.000000000 -0400 +*************** +*** 10858,10862 **** + t = expand_subscript_string (exp, quoted & ~(Q_ARITH|Q_DOUBLE_QUOTES)); + free (exp); +! exp = sh_backslash_quote (t, abstab, 0); + free (t); + +--- 10858,10862 ---- + t = expand_subscript_string (exp, quoted & ~(Q_ARITH|Q_DOUBLE_QUOTES)); + free (exp); +! exp = t ? sh_backslash_quote (t, abstab, 0) : savestring (""); + free (t); + +*** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 0 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash52-001.sig and new/bash-5.2-patches/bash52-001.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.1-patches/bash52-002 new/bash-5.2-patches/bash52-002 --- old/bash-5.1-patches/bash52-002 1970-01-01 01:00:00.000000000 +0100 +++ new/bash-5.2-patches/bash52-002 2022-10-05 16:03:15.000000000 +0200 @@ -0,0 +1,46 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.2 +Patch-ID: bash52-002 + +Bug-Reported-by: Kan-Ru Chen <[email protected]> +Bug-Reference-ID: +Bug-Reference-URL: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021109 + +Bug-Description: + +Starting bash with an invalid locale specification for LC_ALL/LANG/LC_CTYPE +can cause the shell to crash. + +Patch (apply with `patch -p0'): + +*** ../bash-5.2-patched/lib/readline/nls.c 2022-08-15 09:38:51.000000000 -0400 +--- lib/readline/nls.c 2022-10-05 09:23:22.000000000 -0400 +*************** +*** 142,145 **** +--- 142,149 ---- + lspec = ""; + ret = setlocale (LC_CTYPE, lspec); /* ok, since it does not change locale */ ++ if (ret == 0 || *ret == 0) ++ ret = setlocale (LC_CTYPE, (char *)NULL); ++ if (ret == 0 || *ret == 0) ++ ret = RL_DEFAULT_LOCALE; + #else + ret = (lspec == 0 || *lspec == 0) ? RL_DEFAULT_LOCALE : lspec; + +*** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ Binary files old/bash-5.1-patches/bash52-002.sig and new/bash-5.2-patches/bash52-002.sig differ ++++++ bash-5.1.dif -> bash-5.2.dif ++++++ --- /work/SRC/openSUSE:Factory/bash/bash-5.1.dif 2021-01-20 18:22:55.751285640 +0100 +++ /work/SRC/openSUSE:Factory/.bash.new.2275/bash-5.2.dif 2022-10-11 17:59:16.357478315 +0200 @@ -15,8 +15,8 @@ 13 files changed, 37 insertions(+), 21 deletions(-) --- Makefile.in -+++ Makefile.in 2020-11-23 07:50:41.491908452 +0000 -@@ -457,7 +457,7 @@ SOURCES = $(CSOURCES) $(HSOURCES) $(BUI ++++ Makefile.in 2022-06-22 06:38:20.511747259 +0000 +@@ -466,7 +466,7 @@ SOURCES = $(CSOURCES) $(HSOURCES) $(BUI # headers in top-level source directory that get installed by install-headers INSTALLED_HEADERS = shell.h bashjmp.h command.h syntax.h general.h error.h \ variables.h array.h assoc.h arrayfunc.h quit.h dispose_cmd.h \ @@ -24,9 +24,9 @@ + make_cmd.h subst.h sig.h externs.h builtins.h bashline.h \ bashtypes.h xmalloc.h config-top.h config-bot.h \ bashintl.h bashansi.h bashjmp.h alias.h hashlib.h \ - conftypes.h unwind_prot.h jobs.h siglist.h + conftypes.h unwind_prot.h jobs.h siglist.h \ --- config-top.h -+++ config-top.h 2020-11-23 07:52:34.257749719 +0000 ++++ config-top.h 2022-04-28 11:55:03.660248012 +0000 @@ -60,10 +60,14 @@ due to EPIPE. */ /* #define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS */ @@ -51,8 +51,8 @@ + _PATH_STDPATH #endif - /* Default primary and secondary prompt strings. */ -@@ -91,20 +95,20 @@ + /* The default path for enable -f */ +@@ -97,20 +101,20 @@ #define DEFAULT_BASHRC "~/.bashrc" /* System-wide .bashrc file for interactive shells. */ @@ -78,8 +78,8 @@ /* Define if you want the case-toggling operators (~[~]) and the `capcase' variable attribute (declare -c). */ --- doc/Makefile.in -+++ doc/Makefile.in 2020-11-23 07:50:41.491908452 +0000 -@@ -154,7 +154,7 @@ BASHREF_FILES = $(srcdir)/bashref.texi $ ++++ doc/Makefile.in 2022-04-28 11:53:04.334380153 +0000 +@@ -153,7 +153,7 @@ BASHREF_FILES = $(srcdir)/bashref.texi $ # $(RM) $@ # -${TEXI2PDF} $< @@ -89,8 +89,8 @@ everything: all pdf --- doc/bash.1 -+++ doc/bash.1 2020-11-23 07:50:41.491908452 +0000 -@@ -5520,8 +5520,8 @@ file (the \fIinputrc\fP file). ++++ doc/bash.1 2022-06-22 06:37:14.908958305 +0000 +@@ -5745,8 +5745,8 @@ file (the \fIinputrc\fP file). The name of this file is taken from the value of the .SM .B INPUTRC @@ -101,7 +101,7 @@ If that file does not exist or cannot be read, the ultimate default is .IR /etc/inputrc . When a program which uses the readline library starts up, the -@@ -11241,6 +11241,9 @@ The individual login shell cleanup file, +@@ -11706,6 +11706,9 @@ command history .TP .FN ~/.inputrc Individual \fIreadline\fP initialization file @@ -112,7 +112,7 @@ .SH AUTHORS Brian Fox, Free Software Foundation --- general.h -+++ general.h 2020-11-23 07:50:41.491908452 +0000 ++++ general.h 2022-04-28 11:53:04.334380153 +0000 @@ -21,10 +21,13 @@ #if !defined (_GENERAL_H_) #define _GENERAL_H_ @@ -128,8 +128,8 @@ #if defined (HAVE_SYS_RESOURCE_H) && defined (RLIMTYPE) # if defined (HAVE_SYS_TIME_H) --- parse.y -+++ parse.y 2020-11-23 07:50:41.491908452 +0000 -@@ -1458,7 +1458,7 @@ input_file_descriptor () ++++ parse.y 2022-04-28 11:53:04.334380153 +0000 +@@ -1498,7 +1498,7 @@ input_file_descriptor () #if defined (READLINE) char *current_readline_prompt = (char *)NULL; @@ -139,7 +139,7 @@ static int --- shell.c -+++ shell.c 2020-11-23 07:50:41.491908452 +0000 ++++ shell.c 2022-04-28 11:56:12.623015117 +0000 @@ -45,6 +45,7 @@ #if defined (HAVE_UNISTD_H) # include <sys/types.h> @@ -148,16 +148,16 @@ #endif #include "bashintl.h" -@@ -503,7 +504,7 @@ main (argc, argv, env) - if (dump_translatable_strings) +@@ -511,7 +512,7 @@ main (argc, argv, env) read_but_dont_execute = 1; + #endif - if (running_setuid && privileged_mode == 0) + if (running_setuid && privileged_mode == 0 /* && act_like_sh == 0 */) disable_priv_mode (); /* Need to get the argument to a -c option processed in the -@@ -1310,6 +1311,9 @@ disable_priv_mode () +@@ -1341,6 +1342,9 @@ disable_priv_mode () { int e; @@ -168,7 +168,7 @@ if (setresuid (current_user.uid, current_user.uid, current_user.uid) < 0) #else --- support/man2html.c -+++ support/man2html.c 2020-11-23 07:50:41.491908452 +0000 ++++ support/man2html.c 2022-04-28 11:53:04.338380081 +0000 @@ -78,6 +78,7 @@ #include <time.h> #include <sys/time.h> @@ -178,7 +178,7 @@ #define NULL_TERMINATED(n) ((n) + 1) --- support/rlvers.sh -+++ support/rlvers.sh 2020-11-23 07:50:41.495908376 +0000 ++++ support/rlvers.sh 2022-04-28 11:53:04.338380081 +0000 @@ -27,10 +27,10 @@ TDIR=$TMPDIR/rlvers # defaults @@ -194,9 +194,9 @@ # cannot rely on the presence of getopts while [ $# -gt 0 ]; do --- support/shobj-conf -+++ support/shobj-conf 2020-11-23 07:50:41.495908376 +0000 ++++ support/shobj-conf 2022-04-28 11:57:29.117647038 +0000 @@ -126,10 +126,11 @@ sunos5*|solaris2*) - linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*|dragonfly*) + linux*-*|gnu*-*|k*bsd*-gnu-*|midnightbsd*|freebsd*|dragonfly*) SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' - SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' @@ -210,8 +210,8 @@ # Darwin/MacOS X --- tests/glob.tests -+++ tests/glob.tests 2020-11-23 07:50:41.495908376 +0000 -@@ -33,8 +33,8 @@ ${THIS_SH} ./glob9.sub ++++ tests/glob.tests 2022-04-28 11:53:04.338380081 +0000 +@@ -34,8 +34,8 @@ ${THIS_SH} ./glob10.sub MYDIR=$PWD # save where we are @@ -223,15 +223,15 @@ rm -rf * --- tests/run-intl -+++ tests/run-intl 2020-11-23 07:50:41.495908376 +0000 -@@ -5,4 +5,4 @@ echo "warning: some of these tests will - echo "warning: locales installed on your system." >&2 ++++ tests/run-intl 2022-04-28 11:58:22.140698412 +0000 +@@ -2,4 +2,4 @@ + ( diff -a ./intl.right ./intl.right >/dev/null 2>&1 ) && AFLAG=-a ${THIS_SH} ./intl.tests > ${BASH_TSTOUT} -diff $AFLAG ${BASH_TSTOUT} intl.right && rm -f ${BASH_TSTOUT} +diff -w $AFLAG ${BASH_TSTOUT} intl.right && rm -f ${BASH_TSTOUT} --- tests/run-read -+++ tests/run-read 2020-11-23 07:50:41.495908376 +0000 ++++ tests/run-read 2022-04-28 11:53:04.338380081 +0000 @@ -1,4 +1,4 @@ echo "warning: please do not consider output differing only in the amount of" >&2 echo "warning: white space to be an error." >&2 ++++++ bash-5.1.tar.gz -> bash-5.2.tar.gz ++++++ /work/SRC/openSUSE:Factory/bash/bash-5.1.tar.gz /work/SRC/openSUSE:Factory/.bash.new.2275/bash-5.2.tar.gz differ: char 5, line 1 ++++++ bash-rpmlintrc ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:21.021485715 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:21.025485721 +0200 @@ -1,5 +1,7 @@ addFilter(".*shared-library-without-dependency-information.*") -addFilter(".*useless-provides.*") addFilter(".*zero-length.*/etc/skel/\..*") addFilter(".*call-to-mktemp.*/usr/bin/bash.*") +addFilter(".*bash-loadables\..*:.*W:.*unstripped-binary-or-object.*/usr/lib.*/bash/.*") +addFilter(".*W:.*patch-not-applied.*Patch.*:.*bash-4\.3-winch\.dif.*") +addFilter(".*W:.*macro-in-comment.*%patch.*") ++++++ get_version_number.sh ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:21.073485798 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:21.077485804 +0200 @@ -1,5 +1,6 @@ #!/bin/bash # Note: this file is used in the spec file, do not remove it +# Print the highest version number of the patches from the archive sourcedir=$1 test -n "${sourcedir}" || sourcedir=$PWD test -e ${sourcedir}/bash.spec || exit 1 ++++++ quotes-man2html.patch ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:21.093485830 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:21.097485836 +0200 @@ -1,7 +1,7 @@ boo#1203091 --- - support/man2html.c | 12 ++++++++++++ + support/man2html.c | 12 ++++ 1 file changed, 12 insertions(+) --- support/man2html.c ++++++ run-tests ++++++ --- /var/tmp/diff_new_pack.42QA2N/_old 2022-10-11 17:59:21.113485861 +0200 +++ /var/tmp/diff_new_pack.42QA2N/_new 2022-10-11 17:59:21.117485868 +0200 @@ -1,4 +1,18 @@ #! /bin/sh +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# : ${TMPDIR:=/tmp} export TMPDIR @@ -6,14 +20,15 @@ # basic /bin/sh syntax SUFFIX=`${THIS_SH} -c 'echo $(( $RANDOM + $BASHPID ))'` -BASH_TSTOUT=${TMPDIR}/bashtst-$SUFFIX # for now +BASH_TSTOUT=${TMPDIR}/bashtst-$SUFFIX # for now export BASH_TSTOUT -trap 'rm -f $BASH_TSTOUT' 0 +trap 'rm -f $BASH_TSTOUT' 0 1 2 3 15 PATH=.:$PATH # just to get recho/zecho/printenv if not run via `make tests' export PATH + # unset BASH_ENV only if it is set [ "${BASH_ENV+set}" = "set" ] && unset BASH_ENV # ditto for SHELLOPTS @@ -22,9 +37,12 @@ : ${THIS_SH:=../bash} export THIS_SH +: ${BUILD_DIR:=..} +export BUILD_DIR + ${THIS_SH} ./version -rm -f "$BASH_TSTOUT" +rm -f ${BASH_TSTOUT} echo Any output from any test, unless otherwise noted, indicates a possible anomaly @@ -33,11 +51,11 @@ case $x in $0|run-all|run-minimal|run-gprof|run-jobs) ;; *.orig|*~) ;; - *) echo $x ; sh $x ;; + *) echo $x ; sh $x ; rm -f ${BASH_TSTOUT} ;; esac done -trap 'rm -f $tmp' EXIT TERM INT QUIT +trap 'rm -f $tmp' EXIT HUP INT QUIT TERM tmp=$(mktemp /tmp/hello.XXXXXXXX) || exit 1 echo '#!/bin/sh' > $tmp echo exit >> $tmp
