aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/bash
diff options
context:
space:
mode:
authorHongxu Jia <hongxu.jia@windriver.com>2014-03-03 18:55:57 +0800
committerAndreas Oberritter <obi@opendreambox.org>2015-02-23 17:15:26 +0100
commitbbb56bf4c29ed46058a57ec513802d5693fcb0db (patch)
tree374a8dd92402d4d9cc85eb8084f82aeb67c6aaf7 /meta/recipes-extended/bash
parenta490dca7415b8b6d18cb1753c378df8d08757e48 (diff)
downloadopenembedded-core-contrib-bbb56bf4c29ed46058a57ec513802d5693fcb0db.tar.gz
bash: upgrade to 4.3
The bash-4.2-patches is obsolete. Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 31eb09a888729fcfd17d02f2a47375e10e87f79a) Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Diffstat (limited to 'meta/recipes-extended/bash')
-rw-r--r--meta/recipes-extended/bash/bash-4.2/Fix-for-bash-exported-function-namespace-change.patch212
-rw-r--r--meta/recipes-extended/bash/bash-4.2/cve-2014-6271.patch95
-rw-r--r--meta/recipes-extended/bash/bash-4.2/cve-2014-6277.patch44
-rw-r--r--meta/recipes-extended/bash/bash-4.2/cve-2014-6278.patch127
-rw-r--r--meta/recipes-extended/bash/bash-4.2/cve-2014-7169.patch16
-rw-r--r--meta/recipes-extended/bash/bash-4.2/cve-2014-7186_cve-2014-7187.patch167
-rw-r--r--meta/recipes-extended/bash/bash/execute_cmd.patch (renamed from meta/recipes-extended/bash/bash-4.2/execute_cmd.patch)0
-rw-r--r--meta/recipes-extended/bash/bash/mkbuiltins_have_stringize.patch (renamed from meta/recipes-extended/bash/bash-4.2/mkbuiltins_have_stringize.patch)0
-rw-r--r--meta/recipes-extended/bash/bash/run-ptest (renamed from meta/recipes-extended/bash/bash-4.2/run-ptest)0
-rw-r--r--meta/recipes-extended/bash/bash/test-output.patch (renamed from meta/recipes-extended/bash/bash-4.2/test-output.patch)0
-rw-r--r--meta/recipes-extended/bash/bash_4.2.bb56
-rw-r--r--meta/recipes-extended/bash/bash_4.3.bb18
12 files changed, 18 insertions, 717 deletions
diff --git a/meta/recipes-extended/bash/bash-4.2/Fix-for-bash-exported-function-namespace-change.patch b/meta/recipes-extended/bash/bash-4.2/Fix-for-bash-exported-function-namespace-change.patch
deleted file mode 100644
index 0fb2ad5d89..0000000000
--- a/meta/recipes-extended/bash/bash-4.2/Fix-for-bash-exported-function-namespace-change.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-Fix for exported function namespace change
-
-Upstream-Status: Backport
-
-Downloaded from: http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-050
-
-Author: Chet Ramey <chet.ramey@case.edu>
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
-
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-050
-
-Bug-Reported-by: Florian Weimer <fweimer@redhat.com>
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-This patch changes the encoding bash uses for exported functions to avoid
-clashes with shell variables and to avoid depending only on an environment
-variable's contents to determine whether or not to interpret it as a shell
-function.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2.49/variables.c 2014-09-16 19:35:45.000000000 -0400
---- variables.c 2014-09-27 20:54:00.000000000 -0400
-***************
-*** 80,83 ****
---- 80,88 ----
- #define ifsname(s) ((s)[0] == 'I' && (s)[1] == 'F' && (s)[2] == 'S' && (s)[3] == '\0')
-
-+ #define BASHFUNC_PREFIX "BASH_FUNC_"
-+ #define BASHFUNC_PREFLEN 10 /* == strlen(BASHFUNC_PREFIX */
-+ #define BASHFUNC_SUFFIX "%%"
-+ #define BASHFUNC_SUFFLEN 2 /* == strlen(BASHFUNC_SUFFIX) */
-+
- extern char **environ;
-
-***************
-*** 269,273 ****
- static void dispose_temporary_env __P((sh_free_func_t *));
-
-! static inline char *mk_env_string __P((const char *, const char *));
- static char **make_env_array_from_var_list __P((SHELL_VAR **));
- static char **make_var_export_array __P((VAR_CONTEXT *));
---- 274,278 ----
- static void dispose_temporary_env __P((sh_free_func_t *));
-
-! static inline char *mk_env_string __P((const char *, const char *, int));
- static char **make_env_array_from_var_list __P((SHELL_VAR **));
- static char **make_var_export_array __P((VAR_CONTEXT *));
-***************
-*** 339,357 ****
- /* If exported function, define it now. Don't import functions from
- the environment in privileged mode. */
-! if (privmode == 0 && read_but_dont_execute == 0 && STREQN ("() {", string, 4))
- {
- string_length = strlen (string);
-! temp_string = (char *)xmalloc (3 + string_length + char_index);
-
-! strcpy (temp_string, name);
-! temp_string[char_index] = ' ';
-! strcpy (temp_string + char_index + 1, string);
-
- /* Don't import function names that are invalid identifiers from the
- environment. */
-! if (legal_identifier (name))
-! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
-
-! if (temp_var = find_function (name))
- {
- VSETATTR (temp_var, (att_exported|att_imported));
---- 344,373 ----
- /* If exported function, define it now. Don't import functions from
- the environment in privileged mode. */
-! if (privmode == 0 && read_but_dont_execute == 0 &&
-! STREQN (BASHFUNC_PREFIX, name, BASHFUNC_PREFLEN) &&
-! STREQ (BASHFUNC_SUFFIX, name + char_index - BASHFUNC_SUFFLEN) &&
-! STREQN ("() {", string, 4))
- {
-+ size_t namelen;
-+ char *tname; /* desired imported function name */
-+
-+ namelen = char_index - BASHFUNC_PREFLEN - BASHFUNC_SUFFLEN;
-+
-+ tname = name + BASHFUNC_PREFLEN; /* start of func name */
-+ tname[namelen] = '\0'; /* now tname == func name */
-+
- string_length = strlen (string);
-! temp_string = (char *)xmalloc (namelen + string_length + 2);
-
-! memcpy (temp_string, tname, namelen);
-! temp_string[namelen] = ' ';
-! memcpy (temp_string + namelen + 1, string, string_length + 1);
-
- /* Don't import function names that are invalid identifiers from the
- environment. */
-! if (absolute_program (tname) == 0 && (posixly_correct == 0 || legal_identifier (tname)))
-! parse_and_execute (temp_string, tname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
-
-! if (temp_var = find_function (tname))
- {
- VSETATTR (temp_var, (att_exported|att_imported));
-***************
-*** 359,363 ****
- }
- else
-! report_error (_("error importing function definition for `%s'"), name);
- }
- #if defined (ARRAY_VARS)
---- 375,382 ----
- }
- else
-! report_error (_("error importing function definition for `%s'"), tname);
-!
-! /* Restore original suffix */
-! tname[namelen] = BASHFUNC_SUFFIX[0];
- }
- #if defined (ARRAY_VARS)
-***************
-*** 2538,2542 ****
-
- INVALIDATE_EXPORTSTR (var);
-! var->exportstr = mk_env_string (name, value);
-
- array_needs_making = 1;
---- 2557,2561 ----
-
- INVALIDATE_EXPORTSTR (var);
-! var->exportstr = mk_env_string (name, value, 0);
-
- array_needs_making = 1;
-***************
-*** 3390,3408 ****
-
- static inline char *
-! mk_env_string (name, value)
- const char *name, *value;
- {
-! int name_len, value_len;
-! char *p;
-
- name_len = strlen (name);
- value_len = STRLEN (value);
-! p = (char *)xmalloc (2 + name_len + value_len);
-! strcpy (p, name);
-! p[name_len] = '=';
- if (value && *value)
-! strcpy (p + name_len + 1, value);
- else
-! p[name_len + 1] = '\0';
- return (p);
- }
---- 3409,3448 ----
-
- static inline char *
-! mk_env_string (name, value, isfunc)
- const char *name, *value;
-+ int isfunc;
- {
-! size_t name_len, value_len;
-! char *p, *q;
-
- name_len = strlen (name);
- value_len = STRLEN (value);
-!
-! /* If we are exporting a shell function, construct the encoded function
-! name. */
-! if (isfunc && value)
-! {
-! p = (char *)xmalloc (BASHFUNC_PREFLEN + name_len + BASHFUNC_SUFFLEN + value_len + 2);
-! q = p;
-! memcpy (q, BASHFUNC_PREFIX, BASHFUNC_PREFLEN);
-! q += BASHFUNC_PREFLEN;
-! memcpy (q, name, name_len);
-! q += name_len;
-! memcpy (q, BASHFUNC_SUFFIX, BASHFUNC_SUFFLEN);
-! q += BASHFUNC_SUFFLEN;
-! }
-! else
-! {
-! p = (char *)xmalloc (2 + name_len + value_len);
-! memcpy (p, name, name_len);
-! q = p + name_len;
-! }
-!
-! q[0] = '=';
- if (value && *value)
-! memcpy (q + 1, value, value_len + 1);
- else
-! q[1] = '\0';
-!
- return (p);
- }
-***************
-*** 3490,3494 ****
- using the cached exportstr... */
- list[list_index] = USE_EXPORTSTR ? savestring (value)
-! : mk_env_string (var->name, value);
-
- if (USE_EXPORTSTR == 0)
---- 3530,3534 ----
- using the cached exportstr... */
- list[list_index] = USE_EXPORTSTR ? savestring (value)
-! : mk_env_string (var->name, value, function_p (var));
-
- if (USE_EXPORTSTR == 0)
diff --git a/meta/recipes-extended/bash/bash-4.2/cve-2014-6271.patch b/meta/recipes-extended/bash/bash-4.2/cve-2014-6271.patch
deleted file mode 100644
index 20530adf6c..0000000000
--- a/meta/recipes-extended/bash/bash-4.2/cve-2014-6271.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-Fix CVE-2014-6271, aka ShellShock. This is the upstream 4.2 patchlevel 48, minus the hunk to
-set the patch level.
-
-Upstream-Status: Backport
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-048
-
-Bug-Reported-by: Stephane Chazelas <stephane.chazelas@gmail.com>
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-Under certain circumstances, bash will execute user code while processing the
-environment for exported function definitions.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2.47/builtins/common.h 2010-05-30 18:31:51.000000000 -0400
---- builtins/common.h 2014-09-16 19:35:45.000000000 -0400
-***************
-*** 36,39 ****
---- 36,41 ----
-
- /* Flags for describe_command, shared between type.def and command.def */
-+ #define SEVAL_FUNCDEF 0x080 /* only allow function definitions */
-+ #define SEVAL_ONECMD 0x100 /* only allow a single command */
- #define CDESC_ALL 0x001 /* type -a */
- #define CDESC_SHORTDESC 0x002 /* command -V */
-*** ../bash-4.2.47/builtins/evalstring.c 2010-11-23 08:22:15.000000000 -0500
---- builtins/evalstring.c 2014-09-16 19:35:45.000000000 -0400
-***************
-*** 262,265 ****
---- 262,273 ----
- struct fd_bitmap *bitmap;
-
-+ if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def)
-+ {
-+ internal_warning ("%s: ignoring function definition attempt", from_file);
-+ should_jump_to_top_level = 0;
-+ last_result = last_command_exit_value = EX_BADUSAGE;
-+ break;
-+ }
-+
- bitmap = new_fd_bitmap (FD_BITMAP_SIZE);
- begin_unwind_frame ("pe_dispose");
-***************
-*** 322,325 ****
---- 330,336 ----
- dispose_fd_bitmap (bitmap);
- discard_unwind_frame ("pe_dispose");
-+
-+ if (flags & SEVAL_ONECMD)
-+ break;
- }
- }
-*** ../bash-4.2.47/variables.c 2011-03-01 16:15:20.000000000 -0500
---- variables.c 2014-09-16 19:35:45.000000000 -0400
-***************
-*** 348,357 ****
- strcpy (temp_string + char_index + 1, string);
-
-! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST);
-!
-! /* Ancient backwards compatibility. Old versions of bash exported
-! functions like name()=() {...} */
-! if (name[char_index - 1] == ')' && name[char_index - 2] == '(')
-! name[char_index - 2] = '\0';
-
- if (temp_var = find_function (name))
---- 348,355 ----
- strcpy (temp_string + char_index + 1, string);
-
-! /* Don't import function names that are invalid identifiers from the
-! environment. */
-! if (legal_identifier (name))
-! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
-
- if (temp_var = find_function (name))
-***************
-*** 362,369 ****
- else
- report_error (_("error importing function definition for `%s'"), name);
--
-- /* ( */
-- if (name[char_index - 1] == ')' && name[char_index - 2] == '\0')
-- name[char_index - 2] = '('; /* ) */
- }
- #if defined (ARRAY_VARS)
---- 360,363 ----
diff --git a/meta/recipes-extended/bash/bash-4.2/cve-2014-6277.patch b/meta/recipes-extended/bash/bash-4.2/cve-2014-6277.patch
deleted file mode 100644
index 83b40027cf..0000000000
--- a/meta/recipes-extended/bash/bash-4.2/cve-2014-6277.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-bash: Fix CVE-2014-6277 (shellshock)
-
-Upstream-status: backport
-
-Downloaded from:
-ftp://ftp.gnu.org/pub/bash/bash-4.3-patches/bash43-029
-
-Author: Chet Ramey <chet.ramey@case.edu>
-Signed-off-by: Catalin Popeanga <catalin.popeanga@enea.com>
-
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.3
-Patch-ID: bash43-029
-
-Bug-Reported-by: Michal Zalewski <lcamtuf@coredump.cx>
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-When bash is parsing a function definition that contains a here-document
-delimited by end-of-file (or end-of-string), it leaves the closing delimiter
-uninitialized. This can result in an invalid memory access when the parsed
-function is later copied.
----
---- a/make_cmd.c 2011-12-16 08:08:01.000000000 -0500
-+++ b/make_cmd.c 2014-10-02 11:24:23.000000000 -0400
-@@ -693,4 +693,5 @@
- temp->redirector = source;
- temp->redirectee = dest_and_filename;
-+ temp->here_doc_eof = 0;
- temp->instruction = instruction;
- temp->flags = 0;
---- a/copy_cmd.c 2009-09-11 16:28:02.000000000 -0400
-+++ b/copy_cmd.c 2014-10-02 11:24:23.000000000 -0400
-@@ -127,5 +127,5 @@
- case r_reading_until:
- case r_deblank_reading_until:
-- new_redirect->here_doc_eof = savestring (redirect->here_doc_eof);
-+ new_redirect->here_doc_eof = redirect->here_doc_eof ? savestring (redirect->here_doc_eof) : 0;
- /*FALLTHROUGH*/
- case r_reading_string:
diff --git a/meta/recipes-extended/bash/bash-4.2/cve-2014-6278.patch b/meta/recipes-extended/bash/bash-4.2/cve-2014-6278.patch
deleted file mode 100644
index b25314fcd7..0000000000
--- a/meta/recipes-extended/bash/bash-4.2/cve-2014-6278.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-bash: Fix CVE-2014-6278 (shellshock)
-
-Upstream-status: backport
-
-Downloaded from:
-http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-053
-
-Author: Chet Ramey <chet.ramey@case.edu>
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-053
-
-Bug-Reported-by: Michal Zalewski <lcamtuf@coredump.cx>
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-A combination of nested command substitutions and function importing from
-the environment can cause bash to execute code appearing in the environment
-variable value following the function definition.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2.52/builtins/evalstring.c 2014-09-16 19:35:45.000000000 -0400
---- builtins/evalstring.c 2014-10-04 15:00:26.000000000 -0400
-***************
-*** 262,271 ****
- struct fd_bitmap *bitmap;
-
-! if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def)
- {
-! internal_warning ("%s: ignoring function definition attempt", from_file);
-! should_jump_to_top_level = 0;
-! last_result = last_command_exit_value = EX_BADUSAGE;
-! break;
- }
-
---- 262,284 ----
- struct fd_bitmap *bitmap;
-
-! if (flags & SEVAL_FUNCDEF)
- {
-! char *x;
-!
-! /* If the command parses to something other than a straight
-! function definition, or if we have not consumed the entire
-! string, or if the parser has transformed the function
-! name (as parsing will if it begins or ends with shell
-! whitespace, for example), reject the attempt */
-! if (command->type != cm_function_def ||
-! ((x = parser_remaining_input ()) && *x) ||
-! (STREQ (from_file, command->value.Function_def->name->word) == 0))
-! {
-! internal_warning (_("%s: ignoring function definition attempt"), from_file);
-! should_jump_to_top_level = 0;
-! last_result = last_command_exit_value = EX_BADUSAGE;
-! reset_parser ();
-! break;
-! }
- }
-
-***************
-*** 332,336 ****
-
- if (flags & SEVAL_ONECMD)
-! break;
- }
- }
---- 345,352 ----
-
- if (flags & SEVAL_ONECMD)
-! {
-! reset_parser ();
-! break;
-! }
- }
- }
-*** ../bash-4.2.52/parse.y 2014-09-30 19:24:19.000000000 -0400
---- parse.y 2014-10-04 15:00:26.000000000 -0400
-***************
-*** 2436,2439 ****
---- 2436,2449 ----
- }
-
-+ char *
-+ parser_remaining_input ()
-+ {
-+ if (shell_input_line == 0)
-+ return 0;
-+ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len)
-+ return '\0'; /* XXX */
-+ return (shell_input_line + shell_input_line_index);
-+ }
-+
- #ifdef INCLUDE_UNUSED
- /* Back the input pointer up by one, effectively `ungetting' a character. */
-***************
-*** 3891,3896 ****
- /* reset_parser clears shell_input_line and associated variables */
- restore_input_line_state (&ls);
-! if (interactive)
-! token_to_read = 0;
-
- /* Need to find how many characters parse_and_execute consumed, update
---- 3901,3906 ----
- /* reset_parser clears shell_input_line and associated variables */
- restore_input_line_state (&ls);
-!
-! token_to_read = 0;
-
- /* Need to find how many characters parse_and_execute consumed, update
-*** ../bash-4.2.52/shell.h 2011-11-21 18:03:32.000000000 -0500
---- shell.h 2014-10-04 15:00:26.000000000 -0400
-***************
-*** 178,181 ****
---- 178,183 ----
-
- /* Let's try declaring these here. */
-+ extern char *parser_remaining_input __P((void));
-+
- extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *));
- extern void restore_parser_state __P((sh_parser_state_t *));
diff --git a/meta/recipes-extended/bash/bash-4.2/cve-2014-7169.patch b/meta/recipes-extended/bash/bash-4.2/cve-2014-7169.patch
deleted file mode 100644
index 3c69121767..0000000000
--- a/meta/recipes-extended/bash/bash-4.2/cve-2014-7169.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Taken from http://www.openwall.com/lists/oss-security/2016/09/25/10
-
-Upstream-Status: Backport
-Index: bash-4.3/parse.y
-===================================================================
---- bash-4.3.orig/parse.y 2014-09-26 13:10:44.340080056 -0700
-+++ bash-4.3/parse.y 2014-09-26 13:11:44.764080056 -0700
-@@ -2953,6 +2953,8 @@
- FREE (word_desc_to_read);
- word_desc_to_read = (WORD_DESC *)NULL;
-
-+ eol_ungetc_lookahead = 0;
-+
- current_token = '\n'; /* XXX */
- last_read_token = '\n';
- token_to_read = '\n';
diff --git a/meta/recipes-extended/bash/bash-4.2/cve-2014-7186_cve-2014-7187.patch b/meta/recipes-extended/bash/bash-4.2/cve-2014-7186_cve-2014-7187.patch
deleted file mode 100644
index b51ce5f444..0000000000
--- a/meta/recipes-extended/bash/bash-4.2/cve-2014-7186_cve-2014-7187.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-bash: Fix for CVE-2014-7186 and CVE-2014-7187
-
-Upstream-Status: Backport {GNU Patch-ID: bash42-051}
-
-Downloaded from: http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-051
-
-Author: Chet Ramey <chet.ramey@case.edu>
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.2
-Patch-ID: bash42-051
-
-Bug-Reported-by: Florian Weimer <fweimer@redhat.com>
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-There are two local buffer overflows in parse.y that can cause the shell
-to dump core when given many here-documents attached to a single command
-or many nested loops.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.2.50/parse.y 2014-09-27 12:18:53.000000000 -0400
---- parse.y 2014-09-30 19:24:19.000000000 -0400
-***************
-*** 168,171 ****
---- 168,174 ----
- static int reserved_word_acceptable __P((int));
- static int yylex __P((void));
-+
-+ static void push_heredoc __P((REDIRECT *));
-+ static char *mk_alexpansion __P((char *));
- static int alias_expand_token __P((char *));
- static int time_command_acceptable __P((void));
-***************
-*** 265,269 ****
- /* Variables to manage the task of reading here documents, because we need to
- defer the reading until after a complete command has been collected. */
-! static REDIRECT *redir_stack[10];
- int need_here_doc;
-
---- 268,274 ----
- /* Variables to manage the task of reading here documents, because we need to
- defer the reading until after a complete command has been collected. */
-! #define HEREDOC_MAX 16
-!
-! static REDIRECT *redir_stack[HEREDOC_MAX];
- int need_here_doc;
-
-***************
-*** 307,311 ****
- index is decremented after a case, select, or for command is parsed. */
- #define MAX_CASE_NEST 128
-! static int word_lineno[MAX_CASE_NEST];
- static int word_top = -1;
-
---- 312,316 ----
- index is decremented after a case, select, or for command is parsed. */
- #define MAX_CASE_NEST 128
-! static int word_lineno[MAX_CASE_NEST+1];
- static int word_top = -1;
-
-***************
-*** 520,524 ****
- redir.filename = $2;
- $$ = make_redirection (source, r_reading_until, redir, 0);
-! redir_stack[need_here_doc++] = $$;
- }
- | NUMBER LESS_LESS WORD
---- 525,529 ----
- redir.filename = $2;
- $$ = make_redirection (source, r_reading_until, redir, 0);
-! push_heredoc ($$);
- }
- | NUMBER LESS_LESS WORD
-***************
-*** 527,531 ****
- redir.filename = $3;
- $$ = make_redirection (source, r_reading_until, redir, 0);
-! redir_stack[need_here_doc++] = $$;
- }
- | REDIR_WORD LESS_LESS WORD
---- 532,536 ----
- redir.filename = $3;
- $$ = make_redirection (source, r_reading_until, redir, 0);
-! push_heredoc ($$);
- }
- | REDIR_WORD LESS_LESS WORD
-***************
-*** 534,538 ****
- redir.filename = $3;
- $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN);
-! redir_stack[need_here_doc++] = $$;
- }
- | LESS_LESS_MINUS WORD
---- 539,543 ----
- redir.filename = $3;
- $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN);
-! push_heredoc ($$);
- }
- | LESS_LESS_MINUS WORD
-***************
-*** 541,545 ****
- redir.filename = $2;
- $$ = make_redirection (source, r_deblank_reading_until, redir, 0);
-! redir_stack[need_here_doc++] = $$;
- }
- | NUMBER LESS_LESS_MINUS WORD
---- 546,550 ----
- redir.filename = $2;
- $$ = make_redirection (source, r_deblank_reading_until, redir, 0);
-! push_heredoc ($$);
- }
- | NUMBER LESS_LESS_MINUS WORD
-***************
-*** 548,552 ****
- redir.filename = $3;
- $$ = make_redirection (source, r_deblank_reading_until, redir, 0);
-! redir_stack[need_here_doc++] = $$;
- }
- | REDIR_WORD LESS_LESS_MINUS WORD
---- 553,557 ----
- redir.filename = $3;
- $$ = make_redirection (source, r_deblank_reading_until, redir, 0);
-! push_heredoc ($$);
- }
- | REDIR_WORD LESS_LESS_MINUS WORD
-***************
-*** 555,559 ****
- redir.filename = $3;
- $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN);
-! redir_stack[need_here_doc++] = $$;
- }
- | LESS_LESS_LESS WORD
---- 560,564 ----
- redir.filename = $3;
- $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN);
-! push_heredoc ($$);
- }
- | LESS_LESS_LESS WORD
-***************
-*** 2534,2537 ****
---- 2539,2557 ----
- static int esacs_needed_count;
-
-+ static void
-+ push_heredoc (r)
-+ REDIRECT *r;
-+ {
-+ if (need_here_doc >= HEREDOC_MAX)
-+ {
-+ last_command_exit_value = EX_BADUSAGE;
-+ need_here_doc = 0;
-+ report_syntax_error (_("maximum here-document count exceeded"));
-+ reset_parser ();
-+ exit_shell (last_command_exit_value);
-+ }
-+ redir_stack[need_here_doc++] = r;
-+ }
-+
- void
- gather_here_documents ()
diff --git a/meta/recipes-extended/bash/bash-4.2/execute_cmd.patch b/meta/recipes-extended/bash/bash/execute_cmd.patch
index 81f8f0a9cd..81f8f0a9cd 100644
--- a/meta/recipes-extended/bash/bash-4.2/execute_cmd.patch
+++ b/meta/recipes-extended/bash/bash/execute_cmd.patch
diff --git a/meta/recipes-extended/bash/bash-4.2/mkbuiltins_have_stringize.patch b/meta/recipes-extended/bash/bash/mkbuiltins_have_stringize.patch
index a9391d6cac..a9391d6cac 100644
--- a/meta/recipes-extended/bash/bash-4.2/mkbuiltins_have_stringize.patch
+++ b/meta/recipes-extended/bash/bash/mkbuiltins_have_stringize.patch
diff --git a/meta/recipes-extended/bash/bash-4.2/run-ptest b/meta/recipes-extended/bash/bash/run-ptest
index 8dd3b9981d..8dd3b9981d 100644
--- a/meta/recipes-extended/bash/bash-4.2/run-ptest
+++ b/meta/recipes-extended/bash/bash/run-ptest
diff --git a/meta/recipes-extended/bash/bash-4.2/test-output.patch b/meta/recipes-extended/bash/bash/test-output.patch
index 2b09b7d977..2b09b7d977 100644
--- a/meta/recipes-extended/bash/bash-4.2/test-output.patch
+++ b/meta/recipes-extended/bash/bash/test-output.patch
diff --git a/meta/recipes-extended/bash/bash_4.2.bb b/meta/recipes-extended/bash/bash_4.2.bb
deleted file mode 100644
index e2d391d81c..0000000000
--- a/meta/recipes-extended/bash/bash_4.2.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-require bash.inc
-
-# GPLv2+ (< 4.0), GPLv3+ (>= 4.0)
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-PR = "r6"
-
-SRC_URI = "${GNU_MIRROR}/bash/${BPN}-${PV}.tar.gz;name=tarball \
- ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-001;apply=yes;striplevel=0;name=patch001 \
- ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-002;apply=yes;striplevel=0;name=patch002 \
- ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-003;apply=yes;striplevel=0;name=patch003 \
- ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-004;apply=yes;striplevel=0;name=patch004 \
- ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-005;apply=yes;striplevel=0;name=patch005 \
- ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-006;apply=yes;striplevel=0;name=patch006 \
- ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-007;apply=yes;striplevel=0;name=patch007 \
- ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-008;apply=yes;striplevel=0;name=patch008 \
- ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-009;apply=yes;striplevel=0;name=patch009 \
- ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-010;apply=yes;striplevel=0;name=patch010 \
- file://execute_cmd.patch;striplevel=0 \
- file://mkbuiltins_have_stringize.patch \
- file://build-tests.patch \
- file://test-output.patch \
- file://cve-2014-6271.patch;striplevel=0 \
- file://cve-2014-7169.patch \
- file://Fix-for-bash-exported-function-namespace-change.patch;striplevel=0 \
- file://cve-2014-7186_cve-2014-7187.patch;striplevel=0 \
- file://cve-2014-6277.patch \
- file://cve-2014-6278.patch;striplevel=0 \
- file://run-ptest \
- "
-
-SRC_URI[tarball.md5sum] = "3fb927c7c33022f1c327f14a81c0d4b0"
-SRC_URI[tarball.sha256sum] = "a27a1179ec9c0830c65c6aa5d7dab60f7ce1a2a608618570f96bfa72e95ab3d8"
-SRC_URI[patch001.md5sum] = "1100bc1dda2cdc06ac44d7e5d17864a3"
-SRC_URI[patch001.sha256sum] = "8d6ca028576c4af23e660a2fbc2112221a11c8a785c0b37f033967e5cd12b47a"
-SRC_URI[patch002.md5sum] = "30e7948079921d3261efcc6a40722135"
-SRC_URI[patch002.sha256sum] = "febac927e199aceeba2004908d971d4afb49b521796c3f42d1166f9fbbfbcef9"
-SRC_URI[patch003.md5sum] = "9ea06decec43a198f3d7cf29acc602f8"
-SRC_URI[patch003.sha256sum] = "5a0a7c15018c87348ea87cb0beea14345faf878dbb0e25c17fa70677194cb4cd"
-SRC_URI[patch004.md5sum] = "fb48f6134d7b013135929476aa0c250c"
-SRC_URI[patch004.sha256sum] = "4e34b0f830d2583d56e14225a66937abc81f45bbafcd2eb49daf61c9462140c1"
-SRC_URI[patch005.md5sum] = "e70e45de33426b38153b390be0dbbcd4"
-SRC_URI[patch005.sha256sum] = "a81749e73004b81cfdf0fe075bec365dc1fef756ee5e3fd142821e317d1459a0"
-SRC_URI[patch006.md5sum] = "ce4e5c484993705b27daa151eca242c2"
-SRC_URI[patch006.sha256sum] = "c91148945a2ddafa792682d7c8668c59e7e645eae1334b15b0d5d9ad22634bd1"
-SRC_URI[patch007.md5sum] = "88d1f96db29461767602e2546803bda7"
-SRC_URI[patch007.sha256sum] = "405826acf443dd1084f236a15cb76d7f0ee2dbe5edff45c5fb836db571fb7e95"
-SRC_URI[patch008.md5sum] = "24c574bf6d6a581e300823d9c1276af6"
-SRC_URI[patch008.sha256sum] = "23080d11a60a78941210e2477f6bca066b45db03defa60da86fd765107ba2437"
-SRC_URI[patch009.md5sum] = "4c5835f2fbab36c4292bb334977e5b6d"
-SRC_URI[patch009.sha256sum] = "e7ed5440b4c19765786e90e4f1ded43195d38b3e4d1c4b39fcc23de9a74ccb20"
-SRC_URI[patch010.md5sum] = "0a51602b535ef661ee707be6c8bdb373"
-SRC_URI[patch010.sha256sum] = "acfc5482c25e6923116fcf4b4f7f6345b80f75ad7299749db4b736ad67aa43dc"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-extended/bash/bash_4.3.bb b/meta/recipes-extended/bash/bash_4.3.bb
new file mode 100644
index 0000000000..25b7410c52
--- /dev/null
+++ b/meta/recipes-extended/bash/bash_4.3.bb
@@ -0,0 +1,18 @@
+require bash.inc
+
+# GPLv2+ (< 4.0), GPLv3+ (>= 4.0)
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "${GNU_MIRROR}/bash/${BPN}-${PV}.tar.gz;name=tarball \
+ file://execute_cmd.patch;striplevel=0 \
+ file://mkbuiltins_have_stringize.patch \
+ file://build-tests.patch \
+ file://test-output.patch \
+ file://run-ptest \
+ "
+
+SRC_URI[tarball.md5sum] = "81348932d5da294953e15d4814c74dd1"
+SRC_URI[tarball.sha256sum] = "afc687a28e0e24dc21b988fa159ff9dbcf6b7caa92ade8645cc6d5605cd024d4"
+
+BBCLASSEXTEND = "nativesdk"