slackware-current/source/a/bash/bash-5.2-patches/bash52-029
Patrick J Volkerding 58d830884f Thu Aug 1 23:47:15 UTC 2024
a/bash-5.2.032-x86_64-1.txz:  Upgraded.
d/mercurial-6.8.1-x86_64-1.txz:  Upgraded.
l/pipewire-1.2.2-x86_64-1.txz:  Upgraded.
l/spirv-llvm-translator-18.1.3-x86_64-1.txz:  Upgraded.
n/php-8.3.10-x86_64-1.txz:  Upgraded.
  This is a bugfix release.
  For more information, see:
    https://www.php.net/ChangeLog-8.php#8.3.10
2024-08-02 02:30:06 +02:00

137 lines
3.5 KiB
Text

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_ */