summaryrefslogtreecommitdiff
path: root/source/a/bash/bash-4.2-patches/bash42-026
blob: e15d748070656994143afb431e230f4a90ae6463 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
			     BASH PATCH REPORT
			     =================

Bash-Release:	4.2
Patch-ID:	bash42-026

Bug-Reported-by:	Greg Wooledge <wooledg@eeg.ccf.org>
Bug-Reference-ID:	<20120425180443.GO22241@eeg.ccf.org>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00172.html

Bug-Description:

The `lastpipe' option does not behave correctly on machines where the
open file limit is less than 256.

Patch (apply with `patch -p0'):

*** ../bash-4.2-patched/execute_cmd.c	2011-11-21 12:04:47.000000000 -0500
--- execute_cmd.c	2012-04-26 11:09:30.000000000 -0400
***************
*** 2206,2210 ****
    if (lastpipe_opt && job_control == 0 && asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
      {
!       lstdin = move_to_high_fd (0, 0, 255);
        if (lstdin > 0)
  	{
--- 2325,2329 ----
    if (lastpipe_opt && job_control == 0 && asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
      {
!       lstdin = move_to_high_fd (0, 1, -1);
        if (lstdin > 0)
  	{
***************
*** 2252,2256 ****
--- 2371,2377 ----
      }
  
+ #if defined (JOB_CONTROL)
    discard_unwind_frame ("lastpipe-exec");
+ #endif
  
    return (exec_result);

*** ../bash-4.2-patched/patchlevel.h	Sat Jun 12 20:14:48 2010
--- patchlevel.h	Thu Feb 24 21:41:34 2011
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 25
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 26
  
  #endif /* _PATCHLEVEL_H_ */