components/bash/patches/bash44-004.patch
author Norm Jacobs <Norm.Jacobs@Oracle.COM>
Thu, 12 Jan 2017 14:51:27 -0800
changeset 7571 9e9a7ce5d204
parent 7485 89b2d849f322
permissions -rw-r--r--
25355423 gcc3 fails in pkgdepend on sparc on the s12-115 nightly
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7485
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     1
			     BASH PATCH REPORT
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     2
			     =================
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     3
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     4
Bash-Release:	4.4
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     5
Patch-ID:	bash44-004
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     6
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     7
Bug-Reported-by:	Christian Weisgerber <[email protected]>
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     8
Bug-Reference-ID:	<[email protected]>
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     9
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2016-11/msg00004.html
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    10
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    11
Bug-Description:
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    12
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    13
There is a race condition that can result in bash referencing freed memory
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    14
when freeing data associated with the last process substitution.
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    15
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    16
Patch (apply with `patch -p0'):
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    17
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    18
*** ../bash-4.4/jobs.c	2016-08-23 16:38:44.000000000 -0400
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    19
--- jobs.c	2016-11-02 18:24:45.000000000 -0400
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    20
***************
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    21
*** 454,457 ****
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    22
--- 454,472 ----
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    23
  }
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    24
  
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    25
+ void
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    26
+ discard_last_procsub_child ()
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    27
+ {
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    28
+   PROCESS *disposer;
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    29
+   sigset_t set, oset;
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    30
+ 
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    31
+   BLOCK_CHILD (set, oset);
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    32
+   disposer = last_procsub_child;
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    33
+   last_procsub_child = (PROCESS *)NULL;
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    34
+   UNBLOCK_CHILD (oset);
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    35
+ 
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    36
+   if (disposer)
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    37
+     discard_pipeline (disposer);
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    38
+ }
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    39
+ 
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    40
  struct pipeline_saver *
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    41
  alloc_pipeline_saver ()
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    42
*** ../bash-4.4/jobs.h	2016-04-27 10:35:51.000000000 -0400
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    43
--- jobs.h	2016-11-02 18:25:08.000000000 -0400
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    44
***************
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    45
*** 191,194 ****
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    46
--- 191,195 ----
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    47
  extern void stop_making_children __P((void));
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    48
  extern void cleanup_the_pipeline __P((void));
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    49
+ extern void discard_last_procsub_child __P((void));
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    50
  extern void save_pipeline __P((int));
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    51
  extern PROCESS *restore_pipeline __P((int));
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    52
*** ../bash-4.4/subst.c	2016-08-30 16:46:38.000000000 -0400
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    53
--- subst.c	2016-11-02 18:23:24.000000000 -0400
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    54
***************
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    55
*** 5809,5816 ****
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    56
  #if defined (JOB_CONTROL)
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    57
        if (last_procsub_child)
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    58
! 	{
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    59
! 	  discard_pipeline (last_procsub_child);
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    60
! 	  last_procsub_child = (PROCESS *)NULL;
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    61
! 	}
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    62
        last_procsub_child = restore_pipeline (0);
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    63
  #endif
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    64
--- 5834,5838 ----
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    65
  #if defined (JOB_CONTROL)
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    66
        if (last_procsub_child)
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    67
! 	discard_last_procsub_child ();
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    68
        last_procsub_child = restore_pipeline (0);
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    69
  #endif
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    70
*** ../bash-4.4/patchlevel.h	2016-06-22 14:51:03.000000000 -0400
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    71
--- patchlevel.h	2016-10-01 11:01:28.000000000 -0400
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    72
***************
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    73
*** 26,30 ****
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    74
     looks for to find the patch level (for the sccs version string). */
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    75
  
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    76
! #define PATCHLEVEL 3
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    77
  
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    78
  #endif /* _PATCHLEVEL_H_ */
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    79
--- 26,30 ----
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    80
     looks for to find the patch level (for the sccs version string). */
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    81
  
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    82
! #define PATCHLEVEL 4
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    83
  
89b2d849f322 25123965 Update bash to version 4.4
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    84
  #endif /* _PATCHLEVEL_H_ */