bash ver. bump

This commit is contained in:
Rmys
2024-08-02 19:09:05 +03:00
parent d94a455b9c
commit d00a41e141
7 changed files with 489 additions and 0 deletions
@@ -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_ */
@@ -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_ */
@@ -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_ */
@@ -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_ */
@@ -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_ */
@@ -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_ */
+13
View File
@@ -45,6 +45,12 @@
<Patch>official/bash52-024.patch</Patch>
<Patch>official/bash52-025.patch</Patch>
<Patch>official/bash52-026.patch</Patch>
<Patch>official/bash52-027.patch</Patch>
<Patch>official/bash52-028.patch</Patch>
<Patch>official/bash52-029.patch</Patch>
<Patch>official/bash52-030.patch</Patch>
<Patch>official/bash52-031.patch</Patch>
<Patch>official/bash52-032.patch</Patch>
<!-- Fedora patches -->
<!-- <Patch level="1">fedora/bash-2.03-paths.patch</Patch> -->
@@ -94,6 +100,13 @@
</Package>
<History>
<Update release="17">
<Date>2024-08-02</Date>
<Version>5.2.32</Version>
<Comment>Rebuild.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="16">
<Date>2024-01-14</Date>
<Version>5.2.26</Version>