buildroot/package/bash/0003-bash44-021.patch
Peter Korsgaard 87a8f5f51c package/bash: add upstream patches up to patch level 23
We unfortunately cannot easily download these because of the file names (not
ending in patch) and patch format (p0), so convert to p1 format and include
in package/bash with the following script:

j=1; for i in 19 20 21 22 23; do
    file=$(printf '%04d-patch44-0%d.patch' $j $i)
    cat > $file << EOF
>From https://ftp.gnu.org/gnu/bash/bash-4.4-patches/bash44-0$i

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

EOF
    curl https://ftp.gnu.org/gnu/bash/bash-4.4-patches/bash44-0$i | \
        sed -e 's|^\*\*\* \.\./|*** |' -e 's|^--- |--- b/|' >> $file

    j=$(( j + 1 ))
done

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-03-14 21:31:02 +01:00

62 lines
1.9 KiB
Diff

From https://ftp.gnu.org/gnu/bash/bash-4.4-patches/bash44-021
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
BASH PATCH REPORT
=================
Bash-Release: 4.4
Patch-ID: bash44-021
Bug-Reported-by: werner@suse.de
Bug-Reference-ID: <201803281402.w2SE2VOa000476@noether.suse.de>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2018-03/msg00196.html
Bug-Description:
A SIGINT received inside a SIGINT trap handler can possibly cause the
shell to loop.
Patch (apply with `patch -p0'):
*** bash-20180329/jobs.c 2018-02-11 18:07:22.000000000 -0500
--- b/jobs.c 2018-04-02 14:24:21.000000000 -0400
***************
*** 2690,2694 ****
if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB))
{
! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
waiting_for_child = 0;
if (old_sigint_handler == SIG_IGN)
--- b/2690,2704 ----
if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB))
{
! SigHandler *temp_sigint_handler;
!
! temp_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
! if (temp_sigint_handler == wait_sigint_handler)
! {
! #if defined (DEBUG)
! internal_warning ("wait_for: recursively setting old_sigint_handler to wait_sigint_handler: running_trap = %d", running_trap);
! #endif
! }
! else
! old_sigint_handler = temp_sigint_handler;
waiting_for_child = 0;
if (old_sigint_handler == SIG_IGN)
*** bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
--- b/patchlevel.h 2016-10-01 11:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 20
#endif /* _PATCHLEVEL_H_ */
--- b/26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 21
#endif /* _PATCHLEVEL_H_ */