Hello community, here is the log from the commit of package bash for openSUSE:Factory checked in at 2020-05-19 14:43:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bash (Old) and /work/SRC/openSUSE:Factory/.bash.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bash" Tue May 19 14:43:22 2020 rev:163 rq:806032 version:5.0.11 Changes: -------- --- /work/SRC/openSUSE:Factory/bash/bash.changes 2020-05-09 19:48:15.332309942 +0200 +++ /work/SRC/openSUSE:Factory/.bash.new.2738/bash.changes 2020-05-19 14:43:36.095444413 +0200 @@ -1,0 +2,9 @@ +Sat May 9 07:03:45 UTC 2020 - Dr. Werner Fink <[email protected]> + +- Add official patch bash50-017 + * There were cases where patch 16 reaped process substitution + file descriptors (or FIFOs) and processes to early. This is + a better fix for the problem that bash50-016 attempted to solve. +- Remove temporary patch bash50-fix-016-close-new-fifos.patch + +------------------------------------------------------------------- Old: ---- bash50-fix-016-close-new-fifos.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bash.spec ++++++ --- /var/tmp/diff_new_pack.PWie6n/_old 2020-05-19 14:43:38.539449635 +0200 +++ /var/tmp/diff_new_pack.PWie6n/_new 2020-05-19 14:43:38.543449643 +0200 @@ -62,8 +62,6 @@ Patch14: bash-4.3-sigrestart.patch # PATCH-FIX-UPSTREAM bnc#382214 -- disabled due bnc#806628 by -DBNC382214=0 Patch16: bash-4.0-setlocale.dif -# PATCH-FIX-UPSTREAM -Patch17: bash50-fix-016-close-new-fifos.patch # PATCH-EXTEND-SUSE bnc#828877 -- xterm resizing does not pass to all sub clients Patch18: bash-4.3-winch.dif Patch40: bash-4.1-bash.bashrc.dif @@ -229,7 +227,6 @@ %patch13 -p0 -b .nscdunmap %patch14 -p0 -b .sigrestart %patch16 -p0 -b .setlocale -%patch17 -p0 -b .fix016 #%patch18 -p0 -b .winch %patch40 -p0 -b .bashrc %if %{with sjis} ++++++ bash-5.0-patches.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.0-patches/bash50-012 new/bash-5.0-patches/bash50-012 --- old/bash-5.0-patches/bash50-012 2020-02-07 21:14:07.000000000 +0100 +++ new/bash-5.0-patches/bash50-012 2020-04-03 10:31:43.646276097 +0200 @@ -15,7 +15,7 @@ Patch (apply with `patch -p0'): -*** ../bash-5.0-patched/lib/readline/misc.c 2017-07-07 17:30:12.000000000 -0400 +*** lib/readline/misc.c 2017-07-07 17:30:12.000000000 -0400 --- lib/readline/misc.c 2019-05-16 11:43:46.000000000 -0400 *************** *** 577,580 **** @@ -47,7 +47,7 @@ ! _rl_free_saved_history_line (); rl_ding (); } -*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +*** patchlevel.h 2016-06-22 14:51:03.000000000 -0400 --- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.0-patches/bash50-013 new/bash-5.0-patches/bash50-013 --- old/bash-5.0-patches/bash50-013 2020-02-07 21:14:17.000000000 +0100 +++ new/bash-5.0-patches/bash50-013 2020-04-03 10:31:43.658275867 +0200 @@ -15,7 +15,7 @@ Patch (apply with `patch -p0'): -*** ../bash-5.0-patched/lib/readline/histfile.c 2018-06-11 09:14:52.000000000 -0400 +*** lib/readline/histfile.c 2018-06-11 09:14:52.000000000 -0400 --- lib/readline/histfile.c 2019-05-16 15:55:57.000000000 -0400 *************** *** 370,376 **** @@ -56,7 +56,7 @@ } -*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +*** patchlevel.h 2016-06-22 14:51:03.000000000 -0400 --- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.0-patches/bash50-014 new/bash-5.0-patches/bash50-014 --- old/bash-5.0-patches/bash50-014 2020-02-07 21:14:28.000000000 +0100 +++ new/bash-5.0-patches/bash50-014 2020-04-03 10:31:43.670275639 +0200 @@ -15,7 +15,7 @@ Patch (apply with `patch -p0'): -*** ../bash-5.0-patched/bashline.c 2019-01-16 16:13:21.000000000 -0500 +*** bashline.c 2019-01-16 16:13:21.000000000 -0500 --- bashline.c 2019-02-11 11:18:57.000000000 -0500 *************** *** 962,970 **** @@ -35,7 +35,7 @@ ! bash_add_history (rl_line_buffer); current_command_line_count = 0; /* for dummy history entry */ bash_add_history (""); -*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +*** patchlevel.h 2016-06-22 14:51:03.000000000 -0400 --- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.0-patches/bash50-015 new/bash-5.0-patches/bash50-015 --- old/bash-5.0-patches/bash50-015 2020-02-07 21:14:42.000000000 +0100 +++ new/bash-5.0-patches/bash50-015 2020-04-03 10:31:43.682275409 +0200 @@ -61,7 +61,7 @@ ! while (*(bash_input.location.string)) /* XXX - parser_expanding_alias () ? */ { command = (COMMAND *)NULL; -*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +*** patchlevel.h 2016-06-22 14:51:03.000000000 -0400 --- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.0-patches/bash50-016 new/bash-5.0-patches/bash50-016 --- old/bash-5.0-patches/bash50-016 2020-02-07 21:14:52.000000000 +0100 +++ new/bash-5.0-patches/bash50-016 2020-04-03 10:31:43.694275180 +0200 @@ -15,7 +15,7 @@ Patch (apply with `patch -p0'): -*** ../bash-5.0-patched/execute_cmd.c 2019-04-19 15:46:36.000000000 -0400 +*** execute_cmd.c 2019-04-19 15:46:36.000000000 -0400 --- execute_cmd.c 2019-07-01 16:45:49.000000000 -0400 *************** *** 1104,1107 **** @@ -41,7 +41,7 @@ #endif -*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +*** patchlevel.h 2016-06-22 14:51:03.000000000 -0400 --- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-5.0-patches/bash50-017 new/bash-5.0-patches/bash50-017 --- old/bash-5.0-patches/bash50-017 1970-01-01 01:00:00.000000000 +0100 +++ new/bash-5.0-patches/bash50-017 2020-04-24 16:51:15.000000000 +0200 @@ -0,0 +1,289 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.0 +Patch-ID: bash50-017 + +Bug-Reported-by: Valentin Lab <[email protected]> +Bug-Reference-ID: <[email protected]> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2020-03/msg00062.html + +Bug-Description: + +There were cases where patch 16 reaped process substitution file descriptors +(or FIFOs) and processes to early. This is a better fix for the problem that +bash50-016 attempted to solve. + +Patch (apply with `patch -p0'): + +*** ../bash-5.0-patched/subst.c 2019-08-29 11:16:49.000000000 -0400 +--- subst.c 2020-04-02 16:24:19.000000000 -0400 +*************** +*** 5337,5341 **** + } + +! char * + copy_fifo_list (sizep) + int *sizep; +--- 5337,5341 ---- + } + +! void * + copy_fifo_list (sizep) + int *sizep; +*************** +*** 5343,5347 **** + if (sizep) + *sizep = 0; +! return (char *)NULL; + } + +--- 5343,5347 ---- + if (sizep) + *sizep = 0; +! return (void *)NULL; + } + +*************** +*** 5409,5414 **** + if (fifo_list[i].file) + { +! fifo_list[j].file = fifo_list[i].file; +! fifo_list[j].proc = fifo_list[i].proc; + j++; + } +--- 5409,5419 ---- + if (fifo_list[i].file) + { +! if (i != j) +! { +! fifo_list[j].file = fifo_list[i].file; +! fifo_list[j].proc = fifo_list[i].proc; +! fifo_list[i].file = (char *)NULL; +! fifo_list[i].proc = 0; +! } + j++; + } +*************** +*** 5426,5433 **** + void + close_new_fifos (list, lsize) +! char *list; + int lsize; + { + int i; + + if (list == 0) +--- 5431,5439 ---- + void + close_new_fifos (list, lsize) +! void *list; + int lsize; + { + int i; ++ char *plist; + + if (list == 0) +*************** +*** 5437,5442 **** + } + +! for (i = 0; i < lsize; i++) +! if (list[i] == 0 && i < fifo_list_size && fifo_list[i].proc != -1) + unlink_fifo (i); + +--- 5443,5448 ---- + } + +! for (plist = (char *)list, i = 0; i < lsize; i++) +! if (plist[i] == 0 && i < fifo_list_size && fifo_list[i].proc != -1) + unlink_fifo (i); + +*************** +*** 5560,5568 **** + } + +! char * + copy_fifo_list (sizep) + int *sizep; + { +! char *ret; + + if (nfds == 0 || totfds == 0) +--- 5566,5574 ---- + } + +! void * + copy_fifo_list (sizep) + int *sizep; + { +! void *ret; + + if (nfds == 0 || totfds == 0) +*************** +*** 5570,5579 **** + if (sizep) + *sizep = 0; +! return (char *)NULL; + } + + if (sizep) + *sizep = totfds; +! ret = (char *)xmalloc (totfds * sizeof (pid_t)); + return (memcpy (ret, dev_fd_list, totfds * sizeof (pid_t))); + } +--- 5576,5585 ---- + if (sizep) + *sizep = 0; +! return (void *)NULL; + } + + if (sizep) + *sizep = totfds; +! ret = xmalloc (totfds * sizeof (pid_t)); + return (memcpy (ret, dev_fd_list, totfds * sizeof (pid_t))); + } +*************** +*** 5648,5655 **** + void + close_new_fifos (list, lsize) +! char *list; + int lsize; + { + int i; + + if (list == 0) +--- 5654,5662 ---- + void + close_new_fifos (list, lsize) +! void *list; + int lsize; + { + int i; ++ pid_t *plist; + + if (list == 0) +*************** +*** 5659,5664 **** + } + +! for (i = 0; i < lsize; i++) +! if (list[i] == 0 && i < totfds && dev_fd_list[i]) + unlink_fifo (i); + +--- 5666,5671 ---- + } + +! for (plist = (pid_t *)list, i = 0; i < lsize; i++) +! if (plist[i] == 0 && i < totfds && dev_fd_list[i]) + unlink_fifo (i); + +*** ../bash-5.0-patched/subst.h 2018-10-21 18:46:09.000000000 -0400 +--- subst.h 2020-04-02 16:29:28.000000000 -0400 +*************** +*** 274,280 **** + extern void unlink_fifo __P((int)); + +! extern char *copy_fifo_list __P((int *)); +! extern void unlink_new_fifos __P((char *, int)); +! extern void close_new_fifos __P((char *, int)); + + extern void clear_fifo_list __P((void)); +--- 274,279 ---- + extern void unlink_fifo __P((int)); + +! extern void *copy_fifo_list __P((int *)); +! extern void close_new_fifos __P((void *, int)); + + extern void clear_fifo_list __P((void)); +*** ../bash-5.0-patched/execute_cmd.c 2020-02-06 20:16:48.000000000 -0500 +--- execute_cmd.c 2020-04-02 17:00:10.000000000 -0400 +*************** +*** 565,569 **** + #if defined (PROCESS_SUBSTITUTION) + volatile int ofifo, nfifo, osize, saved_fifo; +! volatile char *ofifo_list; + #endif + +--- 565,569 ---- + #if defined (PROCESS_SUBSTITUTION) + volatile int ofifo, nfifo, osize, saved_fifo; +! volatile void *ofifo_list; + #endif + +*************** +*** 751,760 **** + # endif + +! if (variable_context != 0) /* XXX - also if sourcelevel != 0? */ + { + ofifo = num_fifos (); + ofifo_list = copy_fifo_list ((int *)&osize); + begin_unwind_frame ("internal_fifos"); +! add_unwind_protect (xfree, ofifo_list); + saved_fifo = 1; + } +--- 751,762 ---- + # endif + +! /* XXX - also if sourcelevel != 0? */ +! if (variable_context != 0) + { + ofifo = num_fifos (); + ofifo_list = copy_fifo_list ((int *)&osize); + begin_unwind_frame ("internal_fifos"); +! if (ofifo_list) +! add_unwind_protect (xfree, ofifo_list); + saved_fifo = 1; + } +*************** +*** 1100,1123 **** + nfifo = num_fifos (); + if (nfifo > ofifo) +! close_new_fifos ((char *)ofifo_list, osize); + free ((void *)ofifo_list); + discard_unwind_frame ("internal_fifos"); + } +- # if defined (HAVE_DEV_FD) +- /* Reap process substitutions at the end of loops */ +- switch (command->type) +- { +- case cm_while: +- case cm_until: +- case cm_for: +- case cm_group: +- # if defined (ARITH_FOR_COMMAND) +- case cm_arith_for: +- # endif +- reap_procsubs (); +- default: +- break; +- } +- # endif /* HAVE_DEV_FD */ + #endif + +--- 1102,1109 ---- + nfifo = num_fifos (); + if (nfifo > ofifo) +! close_new_fifos ((void *)ofifo_list, osize); + free ((void *)ofifo_list); + discard_unwind_frame ("internal_fifos"); + } + #endif + + +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +--- 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 16 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */
