components/bash/patches/bash42-053.patch
author John Beck <John.Beck@Oracle.COM>
Tue, 06 Oct 2015 07:41:40 -0700
changeset 4973 be26c0c14fa7
parent 2165 d1946b7b1894
permissions -rw-r--r--
21960309 Userland mangler should drop depend actions from obsolete packages
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2165
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     1
			     BASH PATCH REPORT
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     2
			     =================
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     3
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     4
Bash-Release:	4.2
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     5
Patch-ID:	bash42-053
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     6
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     7
Bug-Reported-by:	Michal Zalewski <[email protected]>
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     8
Bug-Reference-ID:
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     9
Bug-Reference-URL:
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    10
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    11
Bug-Description:
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    12
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    13
A combination of nested command substitutions and function importing from
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    14
the environment can cause bash to execute code appearing in the environment
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    15
variable value following the function definition.
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    16
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    17
Patch (apply with `patch -p0'):
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    18
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    19
*** ../bash-4.2.52/builtins/evalstring.c	2014-09-16 19:35:45.000000000 -0400
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    20
--- builtins/evalstring.c	2014-10-04 15:00:26.000000000 -0400
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    21
***************
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    22
*** 262,271 ****
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    23
  	      struct fd_bitmap *bitmap;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    24
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    25
! 	      if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def)
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    26
  		{
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    27
! 		  internal_warning ("%s: ignoring function definition attempt", from_file);
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    28
! 		  should_jump_to_top_level = 0;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    29
! 		  last_result = last_command_exit_value = EX_BADUSAGE;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    30
! 		  break;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    31
  		}
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    32
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    33
--- 262,284 ----
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    34
  	      struct fd_bitmap *bitmap;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    35
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    36
! 	      if (flags & SEVAL_FUNCDEF)
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    37
  		{
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    38
! 		  char *x;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    39
! 
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    40
! 		  /* If the command parses to something other than a straight
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    41
! 		     function definition, or if we have not consumed the entire
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    42
! 		     string, or if the parser has transformed the function
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    43
! 		     name (as parsing will if it begins or ends with shell
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    44
! 		     whitespace, for example), reject the attempt */
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    45
! 		  if (command->type != cm_function_def ||
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    46
! 		      ((x = parser_remaining_input ()) && *x) ||
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    47
! 		      (STREQ (from_file, command->value.Function_def->name->word) == 0))
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    48
! 		    {
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    49
! 		      internal_warning (_("%s: ignoring function definition attempt"), from_file);
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    50
! 		      should_jump_to_top_level = 0;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    51
! 		      last_result = last_command_exit_value = EX_BADUSAGE;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    52
! 		      reset_parser ();
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    53
! 		      break;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    54
! 		    }
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    55
  		}
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    56
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    57
***************
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    58
*** 332,336 ****
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    59
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    60
  	      if (flags & SEVAL_ONECMD)
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    61
! 		break;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    62
  	    }
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    63
  	}
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    64
--- 345,352 ----
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    65
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    66
  	      if (flags & SEVAL_ONECMD)
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    67
! 		{
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    68
! 		  reset_parser ();
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    69
! 		  break;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    70
! 		}
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    71
  	    }
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    72
  	}
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    73
*** ../bash-4.2.52/parse.y	2014-09-30 19:24:19.000000000 -0400
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    74
--- parse.y	2014-10-04 15:00:26.000000000 -0400
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    75
***************
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    76
*** 2436,2439 ****
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    77
--- 2436,2449 ----
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    78
  }
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    79
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    80
+ char *
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    81
+ parser_remaining_input ()
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    82
+ {
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    83
+   if (shell_input_line == 0)
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    84
+     return 0;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    85
+   if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len)
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    86
+     return '\0';	/* XXX */
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    87
+   return (shell_input_line + shell_input_line_index);
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    88
+ }
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    89
+ 
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    90
  #ifdef INCLUDE_UNUSED
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    91
  /* Back the input pointer up by one, effectively `ungetting' a character. */
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    92
***************
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    93
*** 3891,3896 ****
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    94
    /* reset_parser clears shell_input_line and associated variables */
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    95
    restore_input_line_state (&ls);
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    96
!   if (interactive)
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    97
!     token_to_read = 0;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    98
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    99
    /* Need to find how many characters parse_and_execute consumed, update
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   100
--- 3901,3906 ----
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   101
    /* reset_parser clears shell_input_line and associated variables */
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   102
    restore_input_line_state (&ls);
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   103
! 
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   104
!   token_to_read = 0;
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   105
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   106
    /* Need to find how many characters parse_and_execute consumed, update
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   107
*** ../bash-4.2.52/shell.h	2011-11-21 18:03:32.000000000 -0500
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   108
--- shell.h	2014-10-04 15:00:26.000000000 -0400
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   109
***************
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   110
*** 178,181 ****
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   111
--- 178,183 ----
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   112
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   113
  /* Let's try declaring these here. */
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   114
+ extern char *parser_remaining_input __P((void));
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   115
+ 
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   116
  extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *));
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   117
  extern void restore_parser_state __P((sh_parser_state_t *));
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   118
*** ../bash-4.2-patched/patchlevel.h	Sat Jun 12 20:14:48 2010
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   119
--- patchlevel.h	Thu Feb 24 21:41:34 2011
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   120
***************
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   121
*** 26,30 ****
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   122
     looks for to find the patch level (for the sccs version string). */
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   123
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   124
! #define PATCHLEVEL 52
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   125
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   126
  #endif /* _PATCHLEVEL_H_ */
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   127
--- 26,30 ----
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   128
     looks for to find the patch level (for the sccs version string). */
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   129
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   130
! #define PATCHLEVEL 53
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   131
  
d1946b7b1894 19701904 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   132
  #endif /* _PATCHLEVEL_H_ */