summaryrefslogtreecommitdiffstats
path: root/source/a/bash/bash-5.2-patches
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/bash/bash-5.2-patches')
-rw-r--r--source/a/bash/bash-5.2-patches/bash52-02763
-rw-r--r--source/a/bash/bash-5.2-patches/bash52-02849
-rw-r--r--source/a/bash/bash-5.2-patches/bash52-029137
-rw-r--r--source/a/bash/bash-5.2-patches/bash52-030130
-rw-r--r--source/a/bash/bash-5.2-patches/bash52-03146
-rw-r--r--source/a/bash/bash-5.2-patches/bash52-03251
6 files changed, 476 insertions, 0 deletions
diff --git a/source/a/bash/bash-5.2-patches/bash52-027 b/source/a/bash/bash-5.2-patches/bash52-027
new file mode 100644
index 000000000..9f18676f8
--- /dev/null
+++ b/source/a/bash/bash-5.2-patches/bash52-027
@@ -0,0 +1,63 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.2
+Patch-ID: bash52-027
+
+Bug-Reported-by: Emanuel Haupt <ehaupt@FreeBSD.org>
+Bug-Reference-ID: <20221001123841.27e1bfb3bf3ed58ab32ea2b5@FreeBSD.org>
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00000.html
+
+Bug-Description:
+
+The configure test for the presence of strtoimax(3) is inverted.
+
+Patch (apply with `patch -p0'):
+
+
+*** ../bash-5.2-patched/m4/strtoimax.m4 Mon Apr 11 16:31:52 2022
+--- m4/strtoimax.m4 Tue Apr 9 11:12:36 2024
+***************
+*** 30,34 ****
+ ])
+ AC_MSG_RESULT($bash_cv_func_strtoimax)
+! if test $bash_cv_func_strtoimax = yes; then
+ AC_LIBOBJ(strtoimax)
+ fi
+--- 30,34 ----
+ ])
+ AC_MSG_RESULT($bash_cv_func_strtoimax)
+! if test $bash_cv_func_strtoimax = no; then
+ AC_LIBOBJ(strtoimax)
+ fi
+*** ..//bash-5.2-patched/configure Fri Sep 23 10:13:22 2022
+--- configure Tue Apr 9 11:13:21 2024
+***************
+*** 20444,20448 ****
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_strtoimax" >&5
+ printf "%s\n" "$bash_cv_func_strtoimax" >&6; }
+! if test $bash_cv_func_strtoimax = yes; then
+ case " $LIBOBJS " in
+ *" strtoimax.$ac_objext "* ) ;;
+--- 20444,20448 ----
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_strtoimax" >&5
+ printf "%s\n" "$bash_cv_func_strtoimax" >&6; }
+! if test $bash_cv_func_strtoimax = no; then
+ case " $LIBOBJS " in
+ *" strtoimax.$ac_objext "* ) ;;
+
+*** ../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 26
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 27
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-5.2-patches/bash52-028 b/source/a/bash/bash-5.2-patches/bash52-028
new file mode 100644
index 000000000..806bdc5ee
--- /dev/null
+++ b/source/a/bash/bash-5.2-patches/bash52-028
@@ -0,0 +1,49 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.2
+Patch-ID: bash52-028
+
+Bug-Reported-by: Mark March <march@systempad.cloud>
+Bug-Reference-ID: <834896722.6304071.1718744118467@mail.yahoo.com>
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2024-06/msg00122.html
+
+Bug-Description:
+
+A DEBUG trap in an asynchronous process can steal the controlling terminal
+away from the calling shell, causing it to exit.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-20240609/trap.c Fri May 3 12:12:38 2024
+--- trap.c Wed Jun 26 10:41:40 2024
+***************
+*** 1217,1221 ****
+ restore_pgrp_pipe (save_pipe);
+ # endif
+! if (pipeline_pgrp > 0 && ((subshell_environment & (SUBSHELL_ASYNC|SUBSHELL_PIPE)) == 0))
+ give_terminal_to (pipeline_pgrp, 1);
+
+--- 1217,1223 ----
+ restore_pgrp_pipe (save_pipe);
+ # endif
+! /* If the trap command gave the terminal to another process group,
+! restore it. XXX - check running_in_background? */
+! if (job_control && pipeline_pgrp > 0 && ((subshell_environment & (SUBSHELL_ASYNC|SUBSHELL_PIPE)) == 0))
+ give_terminal_to (pipeline_pgrp, 1);
+
+*** ../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 27
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 28
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-5.2-patches/bash52-029 b/source/a/bash/bash-5.2-patches/bash52-029
new file mode 100644
index 000000000..7c816eaa2
--- /dev/null
+++ b/source/a/bash/bash-5.2-patches/bash52-029
@@ -0,0 +1,137 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.2
+Patch-ID: bash52-029
+
+Bug-Reported-by: Grisha Levit <grishalevit@gmail.com>
+Bug-Reference-ID: <CAMu=Brp9QHvLh8vbY45hRgCVaQUNSnU7n8EVjsWKajT7c99K8Q@mail.gmail.com>
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2023-04/msg00072.html
+
+Bug-Description:
+
+There are problems with recovery after parser errors when parsing compound
+assignments. For instance, the `local' builtin reports an error but never
+cleans up the function context.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-20230427/parse.y Fri Apr 14 11:50:29 2023
+--- parse.y Mon May 1 16:25:14 2023
+***************
+*** 6471,6478 ****
+ {
+ set_exit_status (EXECUTION_FAILURE);
+ if (interactive_shell == 0 && posixly_correct)
+ jump_to_top_level (FORCE_EOF);
+ else
+! jump_to_top_level (DISCARD);
+ }
+
+--- 6471,6483 ----
+ {
+ set_exit_status (EXECUTION_FAILURE);
++ current_token = '\n'; /* XXX */
+ if (interactive_shell == 0 && posixly_correct)
+ jump_to_top_level (FORCE_EOF);
+ else
+! {
+! if (executing && parse_and_execute_level == 0)
+! top_level_cleanup ();
+! jump_to_top_level (DISCARD);
+! }
+ }
+
+***************
+*** 6538,6546 ****
+ {
+ set_exit_status (EXECUTION_FAILURE);
+! last_read_token = '\n'; /* XXX */
+ if (interactive_shell == 0 && posixly_correct)
+ jump_to_top_level (FORCE_EOF);
+ else
+! jump_to_top_level (DISCARD);
+ }
+
+--- 6543,6555 ----
+ {
+ set_exit_status (EXECUTION_FAILURE);
+! last_read_token = current_token = '\n'; /* XXX */
+ if (interactive_shell == 0 && posixly_correct)
+ jump_to_top_level (FORCE_EOF);
+ else
+! {
+! if (executing && parse_and_execute_level == 0)
+! top_level_cleanup ();
+! jump_to_top_level (DISCARD);
+! }
+ }
+
+
+*** ../bash-20230427/y.tab.c Tue Jul 30 15:19:31 2024
+--- y.tab.c Tue Jul 30 15:20:21 2024
+***************
+*** 8786,8793 ****
+ {
+ set_exit_status (EXECUTION_FAILURE);
+ if (interactive_shell == 0 && posixly_correct)
+ jump_to_top_level (FORCE_EOF);
+ else
+! jump_to_top_level (DISCARD);
+ }
+
+--- 8786,8798 ----
+ {
+ set_exit_status (EXECUTION_FAILURE);
++ current_token = '\n'; /* XXX */
+ if (interactive_shell == 0 && posixly_correct)
+ jump_to_top_level (FORCE_EOF);
+ else
+! {
+! if (executing && parse_and_execute_level == 0)
+! top_level_cleanup ();
+! jump_to_top_level (DISCARD);
+! }
+ }
+
+***************
+*** 8853,8861 ****
+ {
+ set_exit_status (EXECUTION_FAILURE);
+! last_read_token = '\n'; /* XXX */
+ if (interactive_shell == 0 && posixly_correct)
+ jump_to_top_level (FORCE_EOF);
+ else
+! jump_to_top_level (DISCARD);
+ }
+
+--- 8858,8870 ----
+ {
+ set_exit_status (EXECUTION_FAILURE);
+! last_read_token = current_token = '\n'; /* XXX */
+ if (interactive_shell == 0 && posixly_correct)
+ jump_to_top_level (FORCE_EOF);
+ else
+! {
+! if (executing && parse_and_execute_level == 0)
+! top_level_cleanup ();
+! jump_to_top_level (DISCARD);
+! }
+ }
+
+
+*** ../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 28
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 29
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-5.2-patches/bash52-030 b/source/a/bash/bash-5.2-patches/bash52-030
new file mode 100644
index 000000000..20b8f244c
--- /dev/null
+++ b/source/a/bash/bash-5.2-patches/bash52-030
@@ -0,0 +1,130 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.2
+Patch-ID: bash52-030
+
+Bug-Reported-by: Steven Pelley <stevenpelley@gmail.com>
+Bug-Reference-ID: <CAGOYURh6CKaE-D0Z8puP-tQknavCQNRHo02vpvgMQqaTG3_cRw@mail.gmail.com>
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2024-01/msg00104.html
+
+Bug-Description:
+
+`wait -n' can fail to return some jobs if they exit due to signals the shell
+does not report to the user.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.2-patched/jobs.c Thu Nov 9 14:59:14 2023
+--- jobs.c Tue Jul 30 15:27:44 2024
+***************
+*** 4275,4279 ****
+ ((DEADJOB (job) && IS_FOREGROUND (job) == 0) || STOPPED (job)))
+ continue;
+!
+ /* If job control is disabled, don't print the status messages.
+ Mark dead jobs as notified so that they get cleaned up. If
+--- 4288,4312 ----
+ ((DEADJOB (job) && IS_FOREGROUND (job) == 0) || STOPPED (job)))
+ continue;
+!
+! /* Do the same thing and don't print anything or mark as notified
+! for the signals we're not going to report on. This is the opposite
+! of the first two cases under case JDEAD below. */
+! else if (interactive_shell == 0 && DEADJOB (job) && IS_FOREGROUND (job) == 0 &&
+! WIFSIGNALED (s) && (termsig == SIGINT
+! #if defined (DONT_REPORT_SIGTERM)
+! || termsig == SIGTERM
+! #endif
+! #if defined (DONT_REPORT_SIGPIPE)
+! || termsig == SIGPIPE
+! #endif
+! || signal_is_trapped (termsig)))
+! continue;
+!
+! /* hang onto the status if the shell is running -c command */
+! else if (startup_state == 2 && subshell_environment == 0 &&
+! WIFSIGNALED (s) == 0 &&
+! ((DEADJOB (job) && IS_FOREGROUND (job) == 0) || STOPPED (job)))
+! continue;
+!
+ /* If job control is disabled, don't print the status messages.
+ Mark dead jobs as notified so that they get cleaned up. If
+***************
+*** 4298,4302 ****
+ /* Print info on jobs that are running in the background,
+ and on foreground jobs that were killed by anything
+! except SIGINT (and possibly SIGPIPE). */
+ switch (JOBSTATE (job))
+ {
+--- 4331,4335 ----
+ /* Print info on jobs that are running in the background,
+ and on foreground jobs that were killed by anything
+! except SIGINT (and possibly SIGTERM and SIGPIPE). */
+ switch (JOBSTATE (job))
+ {
+***************
+*** 4318,4321 ****
+--- 4351,4355 ----
+ else if (IS_FOREGROUND (job))
+ {
++ /* foreground jobs, interactive and non-interactive shells */
+ #if !defined (DONT_REPORT_SIGPIPE)
+ if (termsig && WIFSIGNALED (s) && termsig != SIGINT)
+***************
+*** 4331,4337 ****
+ fprintf (stderr, "\n");
+ }
+ }
+! else if (job_control) /* XXX job control test added */
+ {
+ if (dir == 0)
+ dir = current_working_directory ();
+--- 4365,4375 ----
+ fprintf (stderr, "\n");
+ }
++ /* foreground jobs that exit cleanly */
++ jobs[job]->flags |= J_NOTIFIED;
+ }
+! else if (job_control)
+ {
++ /* background jobs with job control, interactive and
++ non-interactive shells */
+ if (dir == 0)
+ dir = current_working_directory ();
+***************
+*** 4342,4346 ****
+ }
+
+! jobs[job]->flags |= J_NOTIFIED;
+ break;
+
+--- 4380,4391 ----
+ }
+
+! /* Interactive shells without job control enabled are handled
+! above. */
+! /* XXX - this is a catch-all in case we missed a state */
+! else
+! {
+! internal_debug("notify_of_job_status: catch-all setting J_NOTIFIED on job %d (%d), startup state = %d", job, jobs[job]->flags, startup_state);
+! jobs[job]->flags |= J_NOTIFIED;
+! }
+ break;
+
+
+*** ../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 29
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 30
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-5.2-patches/bash52-031 b/source/a/bash/bash-5.2-patches/bash52-031
new file mode 100644
index 000000000..0210bb278
--- /dev/null
+++ b/source/a/bash/bash-5.2-patches/bash52-031
@@ -0,0 +1,46 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.2
+Patch-ID: bash52-031
+
+Bug-Reported-by: Grisha Levit <grishalevit@gmail.com>
+Bug-Reference-ID: <CAMu=BrrD52xxF7C9Ke1fosAurHq1kz82t7FcHsrPBw9CbAst6A@mail.gmail.com>
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2023-06/msg00045.html
+
+Bug-Description:
+
+There is a memory leak in the code that implements the optimized $(<file)
+expansion for some code paths.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.2-patched/builtins/evalstring.c Tue Dec 13 12:53:21 2022
+--- builtins/evalstring.c Tue Nov 28 17:25:39 2023
+***************
+*** 763,766 ****
+--- 773,779 ----
+ if (fnp)
+ *fnp = fn;
++ else
++ free (fn);
++
+ return fd;
+ }
+
+*** ../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 30
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 31
+
+ #endif /* _PATCHLEVEL_H_ */
+
diff --git a/source/a/bash/bash-5.2-patches/bash52-032 b/source/a/bash/bash-5.2-patches/bash52-032
new file mode 100644
index 000000000..618a37fca
--- /dev/null
+++ b/source/a/bash/bash-5.2-patches/bash52-032
@@ -0,0 +1,51 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.2
+Patch-ID: bash52-032
+
+Bug-Reported-by: Albert Akchurin <ackbeat@gmail.com>
+Bug-Reference-ID: Mon, 11 Dec 2023 20:41:58 +0600
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2023-12/msg00047.html
+
+Bug-Description:
+
+Patch (apply with `patch -p0'):
+
+When printing functions containing coprocesses, the displayed coproc command
+has the word COPROC inserted unconditionally, resulting in function bodies
+that cannot be re-read as input.
+
+*** ../bash-5.2-patched/print_cmd.c Mon Aug 21 16:09:44 2023
+--- print_cmd.c Mon Dec 11 15:34:30 2023
+***************
+*** 357,361 ****
+
+ case cm_coproc:
+! cprintf ("coproc %s ", command->value.Coproc->name);
+ skip_this_indent++;
+ make_command_string_internal (command->value.Coproc->command);
+--- 357,363 ----
+
+ case cm_coproc:
+! cprintf ("coproc ");
+! if (command->value.Coproc->command->type != cm_simple)
+! cprintf ("%s ", command->value.Coproc->name);
+ skip_this_indent++;
+ make_command_string_internal (command->value.Coproc->command);
+
+*** ../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 31
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 32
+
+ #endif /* _PATCHLEVEL_H_ */