diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-10-08 11:48:42 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-10-08 11:48:42 +0400 |
commit | 597d7d4d9df6e688e766f1da1c7de92b191fbde9 (patch) | |
tree | e758dd00a56a9039deba2abab755033466bd0cbf /debian/patches/bash43-020.diff | |
download | bash-debian.tar.gz |
Debian bash 4.3-11debian/4.3-11debian
Diffstat (limited to 'debian/patches/bash43-020.diff')
-rw-r--r-- | debian/patches/bash43-020.diff | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/debian/patches/bash43-020.diff b/debian/patches/bash43-020.diff new file mode 100644 index 0000000..4a298ea --- /dev/null +++ b/debian/patches/bash43-020.diff @@ -0,0 +1,103 @@ +# DP: bash43-020 upstream patch + + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-020 + +Bug-Reported-by: Jared Yanovich <slovichon@gmail.com> +Bug-Reference-ID: <20140417073654.GB26875@nightderanger.psc.edu> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00065.html + +Bug-Description: + +When PS2 contains a command substitution, here-documents entered in an +interactive shell can sometimes cause a segmentation fault. + +Patch (apply with `patch -p0'): + +Index: b/shell.h +=================================================================== +--- a/shell.h ++++ b/shell.h +@@ -168,7 +168,8 @@ typedef struct _sh_parser_state_t { + /* flags state affecting the parser */ + int expand_aliases; + int echo_input_at_read; +- ++ int need_here_doc; ++ + } sh_parser_state_t; + + typedef struct _sh_input_line_state_t { +Index: b/parse.y +=================================================================== +--- a/parse.y ++++ b/parse.y +@@ -2642,7 +2642,7 @@ gather_here_documents () + int r; + + r = 0; +- while (need_here_doc) ++ while (need_here_doc > 0) + { + parser_state |= PST_HEREDOC; + make_here_document (redir_stack[r++], line_number); +@@ -6075,6 +6075,7 @@ save_parser_state (ps) + + ps->expand_aliases = expand_aliases; + ps->echo_input_at_read = echo_input_at_read; ++ ps->need_here_doc = need_here_doc; + + ps->token = token; + ps->token_buffer_size = token_buffer_size; +@@ -6123,6 +6124,7 @@ restore_parser_state (ps) + + expand_aliases = ps->expand_aliases; + echo_input_at_read = ps->echo_input_at_read; ++ need_here_doc = ps->need_here_doc; + + FREE (token); + token = ps->token; +Index: b/y.tab.c +=================================================================== +--- a/y.tab.c ++++ b/y.tab.c +@@ -4954,7 +4954,7 @@ gather_here_documents () + int r; + + r = 0; +- while (need_here_doc) ++ while (need_here_doc > 0) + { + parser_state |= PST_HEREDOC; + make_here_document (redir_stack[r++], line_number); +@@ -8387,6 +8387,7 @@ save_parser_state (ps) + + ps->expand_aliases = expand_aliases; + ps->echo_input_at_read = echo_input_at_read; ++ ps->need_here_doc = need_here_doc; + + ps->token = token; + ps->token_buffer_size = token_buffer_size; +@@ -8435,6 +8436,7 @@ restore_parser_state (ps) + + expand_aliases = ps->expand_aliases; + echo_input_at_read = ps->echo_input_at_read; ++ need_here_doc = ps->need_here_doc; + + FREE (token); + token = ps->token; +Index: b/patchlevel.h +=================================================================== +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 19 ++#define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ |