diff options
| author | Chet Ramey <chet.ramey@case.edu> | 2017-11-20 11:42:18 -0500 |
|---|---|---|
| committer | Chet Ramey <chet.ramey@case.edu> | 2017-11-20 11:42:18 -0500 |
| commit | 5af34ee8a345b6ae2ee097855351e8c317e9d209 (patch) | |
| tree | 34266ed519baa94d485e1922301c6eb4351ca6ad | |
| parent | 5bf9b550c0adec566a39b7c5ccad6c8270e7d001 (diff) | |
| download | bash-5af34ee8a345b6ae2ee097855351e8c317e9d209.tar.gz | |
commit bash-20171110 snapshot
| -rw-r--r-- | CWRU/CWRU.chlog | 25 | ||||
| -rw-r--r-- | builtins/shopt.def | 4 | ||||
| -rw-r--r-- | doc/bash.1 | 3 | ||||
| -rw-r--r-- | doc/bashref.texi | 3 | ||||
| -rw-r--r-- | doc/version.texi | 6 | ||||
| -rw-r--r-- | execute_cmd.c | 6 | ||||
| -rw-r--r-- | lib/sh/unicode.c | 1 | ||||
| -rw-r--r-- | pathexp.c | 4 | ||||
| -rw-r--r-- | subst.c | 3 |
9 files changed, 44 insertions, 11 deletions
diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index f27c8a4..8a3f06d 100644 --- a/CWRU/CWRU.chlog +++ b/CWRU/CWRU.chlog @@ -14433,3 +14433,28 @@ lib/readline/isearch.c sline_index go to -1 to avoid searching the same line twice. It gets reset right after that, so there's no danger of indexing into the history line with a negative index. + + 11/7 + ---- +execute_cmd.c + - time_command: only restore command->flags if CODE indicates we didn't + perform a longjmp back to top_level. If we did, `command' has already + been freed. Fixes bug reported on savannah by + ukuvbu oibws <xyzdr4gon333@googlemail.com> + https://savannah.gnu.org/support/?109403 + + 11/10 + ----- +lib/sh/unicode.c + - u32cconv: make sure to initialize localconv to -1 (error) in case + we switch from a utf-8 locale to something else and call + iconv_close. Report from Egmont Koblinger <egmont@gmail.com>; fix + from Eduardo Bustamante <dualbus@gmail.com> + + 11/16 + ----- +subst.c + - parse_comsub: istring_index should be a size_t to avoid integer + overflow when allocating large pieces of memory. Report and fix + from Siteshwar Vashisht <svashisht@redhat.com>, originally based on + http://lists.gnu.org/archive/html/bug-bash/2017-11/msg00047.html diff --git a/builtins/shopt.def b/builtins/shopt.def index 2106893..f01296e 100644 --- a/builtins/shopt.def +++ b/builtins/shopt.def @@ -26,8 +26,8 @@ $SHORT_DOC shopt [-pqsu] [-o] [optname ...] Set and unset shell options. Change the setting of each shell option OPTNAME. Without any option -arguments, list all shell options with an indication of whether or not each -is set. +arguments, list each supplied OPTNAME, or all shell options if no +OPTNAMEs are given, with an indication of whether or not each is set. Options: -o restrict OPTNAMEs to those defined for use with `set -o' @@ -9598,7 +9598,8 @@ option to the \fBset\fP builtin command. With no options, or with the .B \-p option, a list of all settable options is displayed, with -an indication of whether or not each is set. +an indication of whether or not each is set; +if \fIoptnames\fP are supplied, the output is restricted to those options. The \fB\-p\fP option causes output to be displayed in a form that may be reused as input. Other options have the following meanings: diff --git a/doc/bashref.texi b/doc/bashref.texi index 1fc4cc4..3c289a0 100644 --- a/doc/bashref.texi +++ b/doc/bashref.texi @@ -5055,7 +5055,8 @@ The settings can be either those listed below, or, if the @option{-o} option is used, those available with the @option{-o} option to the @code{set} builtin command (@pxref{The Set Builtin}). With no options, or with the @option{-p} option, a list of all settable -options is displayed, with an indication of whether or not each is set. +options is displayed, with an indication of whether or not each is set; +if @var{optnames} are supplied, the output is restricted to those options. The @option{-p} option causes output to be displayed in a form that may be reused as input. Other options have the following meanings: diff --git a/doc/version.texi b/doc/version.texi index 0845d5f..46fbc10 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -2,10 +2,10 @@ Copyright (C) 1988-2017 Free Software Foundation, Inc. @end ignore -@set LASTCHANGE Fri Oct 27 14:15:11 EDT 2017 +@set LASTCHANGE Mon Nov 6 09:21:50 EST 2017 @set EDITION 4.4 @set VERSION 4.4 -@set UPDATED 27 October 2017 -@set UPDATED-MONTH October 2017 +@set UPDATED 6 November 2017 +@set UPDATED-MONTH November 2017 diff --git a/execute_cmd.c b/execute_cmd.c index 8d38378..8a11401 100644 --- a/execute_cmd.c +++ b/execute_cmd.c @@ -1356,8 +1356,10 @@ time_command (command, asynchronous, pipe_in, pipe_out, fds_to_close) command->flags &= ~(CMD_TIME_PIPELINE|CMD_TIME_POSIX); code = setjmp_nosigs (top_level); if (code == NOT_JUMPED) - rv = execute_command_internal (command, asynchronous, pipe_in, pipe_out, fds_to_close); - command->flags = old_flags; + { + rv = execute_command_internal (command, asynchronous, pipe_in, pipe_out, fds_to_close); + command->flags = old_flags; + } COPY_PROCENV (save_top_level, top_level); rs = us = ss = 0; diff --git a/lib/sh/unicode.c b/lib/sh/unicode.c index a6e3058..fe13c4a 100644 --- a/lib/sh/unicode.c +++ b/lib/sh/unicode.c @@ -272,6 +272,7 @@ u32cconv (c, s) if (u32init == 0) { utf8locale = locale_utf8locale; + localconv = (iconv_t)-1; if (utf8locale == 0) { #if HAVE_LOCALE_CHARSET @@ -420,11 +420,13 @@ shell_glob_filename (pathname) #else /* !USE_POSIX_GLOB_LIBRARY */ char *temp, **results; + int gflags; noglob_dot_filenames = glob_dot_filenames == 0; temp = quote_string_for_globbing (pathname, QGLOB_FILENAME); - results = glob_filename (temp, glob_star ? GX_GLOBSTAR : 0); + gflags = glob_star ? GX_GLOBSTAR : 0; + results = glob_filename (temp, gflags); free (temp); if (results && ((GLOB_FAILED (results)) == 0)) @@ -5803,7 +5803,8 @@ read_comsub (fd, quoted, flags, rflag) int *rflag; { char *istring, buf[128], *bufp, *s; - int istring_index, istring_size, c, tflag, skip_ctlesc, skip_ctlnul; + int istring_index, c, tflag, skip_ctlesc, skip_ctlnul; + size_t istring_size; ssize_t bufn; int nullbyte; |
