summaryrefslogtreecommitdiff
path: root/source/a/bash/bash-4.2-patches/bash42-010
blob: e408abd61b4148ff34e56ba91edc44c883b4c9c8 (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
59
60
61
			     BASH PATCH REPORT
			     =================

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

Bug-Reported-by:	Mike Frysinger <vapier@gentoo.org>
Bug-Reference-ID:	<201104122356.20160.vapier@gentoo.org>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-04/msg00058.html

Bug-Description:

Bash did not correctly print/reproduce here documents attached to commands
inside compound commands such as arithmetic for loops and user-specified
subshells.  This affected the execution of such commands inside a shell
function when the function definition is saved and later restored using
`.' or `eval'.

Patch (apply with `patch -p0'):

*** ../bash-4.2-patched/print_cmd.c	2010-05-30 18:34:08.000000000 -0400
--- print_cmd.c	2011-04-14 10:43:18.000000000 -0400
***************
*** 316,319 ****
--- 317,321 ----
  	  skip_this_indent++;
  	  make_command_string_internal (command->value.Subshell->command);
+ 	  PRINT_DEFERRED_HEREDOCS ("");
  	  cprintf (" )");
  	  break;
***************
*** 593,596 ****
--- 606,610 ----
    indentation += indentation_amount;
    make_command_string_internal (arith_for_command->action);
+   PRINT_DEFERRED_HEREDOCS ("");
    semicolon ();
    indentation -= indentation_amount;
***************
*** 654,657 ****
--- 668,672 ----
  
    make_command_string_internal (group_command->command);
+   PRINT_DEFERRED_HEREDOCS ("");
  
    if (inside_function_def)
*** ../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 9
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 10
  
  #endif /* _PATCHLEVEL_H_ */