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


Reply via email to