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