summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2017-11-20 11:42:18 -0500
committerChet Ramey <chet.ramey@case.edu>2017-11-20 11:42:18 -0500
commit5af34ee8a345b6ae2ee097855351e8c317e9d209 (patch)
tree34266ed519baa94d485e1922301c6eb4351ca6ad
parent5bf9b550c0adec566a39b7c5ccad6c8270e7d001 (diff)
downloadbash-5af34ee8a345b6ae2ee097855351e8c317e9d209.tar.gz
commit bash-20171110 snapshot
-rw-r--r--CWRU/CWRU.chlog25
-rw-r--r--builtins/shopt.def4
-rw-r--r--doc/bash.13
-rw-r--r--doc/bashref.texi3
-rw-r--r--doc/version.texi6
-rw-r--r--execute_cmd.c6
-rw-r--r--lib/sh/unicode.c1
-rw-r--r--pathexp.c4
-rw-r--r--subst.c3
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'
diff --git a/doc/bash.1 b/doc/bash.1
index fc181e4..8fc870e 100644
--- a/doc/bash.1
+++ b/doc/bash.1
@@ -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
diff --git a/pathexp.c b/pathexp.c
index f88ed5b..c8061b5 100644
--- a/pathexp.c
+++ b/pathexp.c
@@ -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))
diff --git a/subst.c b/subst.c
index eb855e9..da6c46a 100644
--- a/subst.c
+++ b/subst.c
@@ -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;