diff --git a/bash-3.2-rng.patch b/bash-3.2-rng.patch deleted file mode 100644 index 44c6ec7..0000000 --- a/bash-3.2-rng.patch +++ /dev/null @@ -1,184 +0,0 @@ -diff -up bash-3.2/config.h.in.rng.patch bash-3.2/config.h.in ---- bash-3.2/config.h.in.rng.patch 2007-08-20 13:42:49.000000000 +0200 -+++ bash-3.2/config.h.in 2007-08-20 13:42:49.000000000 +0200 -@@ -203,6 +203,8 @@ - - #define DEFAULT_MAIL_DIRECTORY "/var/spool/mail" - -+#undef PATH_RANDOMDEV -+ - /* Characteristics of the system's header files and libraries that affect - the compilation environment. */ - -@@ -817,6 +819,10 @@ - /* Define if you have the wcwidth function. */ - #undef HAVE_WCWIDTH - -+#undef HAVE_RANDOM -+ -+#undef HAVE_SRANDOM -+ - /* Presence of certain system include files. */ - - /* Define if you have the header file. */ -diff -up bash-3.2/configure.in.rng.patch bash-3.2/configure.in ---- bash-3.2/configure.in.rng.patch 2007-08-20 13:42:49.000000000 +0200 -+++ bash-3.2/configure.in 2007-08-20 13:42:49.000000000 +0200 -@@ -111,6 +111,7 @@ AC_ARG_WITH(gnu-malloc, AC_HELP_STRING([ - AC_ARG_WITH(installed-readline, AC_HELP_STRING([--with-installed-readline], [use a version of the readline library that is already installed]), opt_with_installed_readline=$withval) - AC_ARG_WITH(purecov, AC_HELP_STRING([--with-purecov], [configure to postprocess with pure coverage]), opt_purecov=$withval) - AC_ARG_WITH(purify, AC_HELP_STRING([--with-purify], [configure to postprocess with purify]), opt_purify=$withval) -+AC_ARG_WITH(random, AC_HELP_STRING([--with-randomdev=path], [use specified random device instead of /dev/urandom]), opt_randomdev=$withval) - - if test "$opt_bash_malloc" = yes; then - MALLOC_TARGET=malloc -@@ -152,6 +153,15 @@ if test -z "${DEBUGGER_START_FILE}"; the - DEBUGGER_START_FILE=${ac_default_prefix}/share/bashdb/bashdb-main.inc - fi - -+if test "$opt_randomdev" = yes -o -z "$opt_randomdev"; then -+ opt_randomdev="/dev/urandom" -+elif test "$opt_randomdev" = no; then -+ opt_randomdev= -+fi -+if test -n "$opt_randomdev"; then -+ AC_DEFINE_UNQUOTED(PATH_RANDOMDEV, "$opt_randomdev", [Random device path.]) -+fi -+ - dnl optional shell features in config.h.in - opt_minimal_config=no - -@@ -708,6 +718,8 @@ AC_CHECK_FUNCS(bcopy bzero confstr fnmat - setenv setlinebuf setlocale setvbuf siginterrupt strchr \ - sysconf tcgetattr times ttyname tzset unsetenv) - -+AC_CHECK_FUNCS(random srandom) -+ - AC_CHECK_FUNCS(vsnprintf snprintf vasprintf asprintf) - AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit) - AC_CHECK_FUNCS(getpwent getpwnam getpwuid) -diff -up bash-3.2/variables.c.rng.patch bash-3.2/variables.c ---- bash-3.2/variables.c.rng.patch 2006-09-08 19:33:32.000000000 +0200 -+++ bash-3.2/variables.c 2007-08-20 16:16:56.000000000 +0200 -@@ -42,6 +42,11 @@ - #include "bashansi.h" - #include "bashintl.h" - -+#if defined (PATH_RANDOMDEV) -+# include -+# include "filecntl.h" -+#endif -+ - #include "shell.h" - #include "flags.h" - #include "execute_cmd.h" -@@ -182,7 +187,8 @@ static SHELL_VAR *get_seconds __P((SHELL - static SHELL_VAR *init_seconds_var __P((void)); - - static int brand __P((void)); --static void sbrand __P((unsigned long)); /* set bash random number generator. */ -+static void sbrand __P((unsigned int)); /* set bash random number generator. */ -+static void seed_random __P((void)); /* seed the generator randomly */ - static SHELL_VAR *assign_random __P((SHELL_VAR *, char *, arrayind_t)); - static SHELL_VAR *get_random __P((SHELL_VAR *)); - -@@ -494,9 +500,6 @@ initialize_shell_variables (env, privmod - } - #endif /* HISTORY */ - -- /* Seed the random number generator. */ -- sbrand (dollar_dollar_pid + shell_start_time); -- - /* Handle some "special" variables that we may have inherited from a - parent shell. */ - if (interactive_shell) -@@ -1143,9 +1146,11 @@ init_seconds_var () - } - - /* The random number seed. You can change this by setting RANDOM. */ -+#if !defined (HAVE_RANDOM) - static unsigned long rseed = 1; -+#endif - static int last_random_value; --static int seeded_subshell = 0; -+static int seeded_subshell = -1; - - /* A linear congruential random number generator based on the example - one in the ANSI C standard. This one isn't very good, but a more -@@ -1155,28 +1160,58 @@ static int seeded_subshell = 0; - static int - brand () - { -+#if defined (HAVE_RANDOM) -+ unsigned int rseed; -+ rseed = random(); -+#else - rseed = rseed * 1103515245 + 12345; -+#endif - return ((unsigned int)((rseed >> 16) & 32767)); /* was % 32768 */ - } - - /* Set the random number generator seed to SEED. */ - static void - sbrand (seed) -- unsigned long seed; -+ unsigned int seed; - { -+#if defined (HAVE_RANDOM) -+ srandom((unsigned int)seed); -+#else - rseed = seed; -+#endif - last_random_value = 0; - } - -+static void -+seed_random () -+{ -+ unsigned int seed; -+#if defined (PATH_RANDOMDEV) -+ int fd; -+ int rv; -+ if ((rv = fd = open (PATH_RANDOMDEV, O_RDONLY)) != -1) { -+ while ((rv = read(fd, &seed, sizeof(seed))) != sizeof(seed) && errno == EINTR); -+ close (fd); -+ } -+ if (rv != sizeof(seed)) { -+#endif -+ struct timeval tv; -+ gettimeofday(&tv, NULL); -+ seed = (unsigned int)tv.tv_sec + (unsigned int)tv.tv_usec + getpid(); -+#if defined (PATH_RANDOMDEV) -+ } -+#endif -+ sbrand (seed); -+} -+ - static SHELL_VAR * - assign_random (self, value, unused) - SHELL_VAR *self; - char *value; - arrayind_t unused; - { -- sbrand (strtoul (value, (char **)NULL, 10)); -- if (subshell_environment) -- seeded_subshell = 1; -+ sbrand ((unsigned int)strtoul (value, (char **)NULL, 10)); -+ seeded_subshell = subshell_level; - return (self); - } - -@@ -1186,10 +1221,10 @@ get_random_number () - int rv; - - /* Reset for command and process substitution. */ -- if (subshell_environment && seeded_subshell == 0) -+ if (seeded_subshell < subshell_level) - { -- sbrand (rseed + getpid() + NOW); -- seeded_subshell = 1; -+ seed_random (); -+ seeded_subshell = subshell_level; - } - - do diff --git a/bash-4.0-key_alloc.patch b/bash-4.0-key_alloc.patch deleted file mode 100644 index e8975dd..0000000 --- a/bash-4.0-key_alloc.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up bash-4.0/assoc.c.key_alloc bash-4.0/assoc.c ---- bash-4.0/assoc.c.key_alloc 2009-08-26 16:17:50.000000000 +0200 -+++ bash-4.0/assoc.c 2009-08-26 16:18:42.000000000 +0200 -@@ -77,6 +77,7 @@ assoc_insert (hash, key, value) - b = hash_search (key, hash, HASH_CREATE); - if (b == 0) - return -1; -+ b->key = savestring (key); - FREE (b->data); - b->data = value ? savestring (value) : (char *)0; - return (0); diff --git a/bash-4.0-no_debug_output.patch b/bash-4.0-no_debug_output.patch deleted file mode 100644 index 1c645f2..0000000 --- a/bash-4.0-no_debug_output.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -up bash-4.0-rc1/error.h.no_debug_output bash-4.0-rc1/error.h ---- bash-4.0-rc1/error.h.no_debug_output 2009-01-08 14:32:45.000000000 +0100 -+++ bash-4.0-rc1/error.h 2009-01-29 14:39:16.000000000 +0100 -@@ -51,8 +51,10 @@ extern void internal_error __P((const ch - extern void internal_warning __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2))); - - /* Debugging functions, not enabled in released version. */ -+#if defined (DEBUG) - extern void itrace __P((const char *, ...)) __attribute__ ((__format__ (printf, 1, 2))); - extern void trace __P((const char *, ...)) __attribute__ ((__format__ (printf, 1, 2))); -+#endif - - /* Report an error having to do with command parsing or execution. */ - extern void command_error __P((const char *, int, int, int)); -diff -up bash-4.0-rc1/builtins/evalstring.c.no_debug_output bash-4.0-rc1/builtins/evalstring.c ---- bash-4.0-rc1/builtins/evalstring.c.no_debug_output 2009-01-04 20:32:22.000000000 +0100 -+++ bash-4.0-rc1/builtins/evalstring.c 2009-01-29 14:39:16.000000000 +0100 -@@ -268,7 +268,9 @@ parse_and_execute (string, from_file, fl - if ((subshell_environment & SUBSHELL_COMSUB) && comsub_ignore_return) - { - command->flags |= CMD_IGNORE_RETURN; -+#if defined (DEBUG) - itrace("parse_and_execute: turned on CMD_IGNORE_RETURN from comsub_ignore_return"); -+#endif - } - - #if defined (ONESHOT) -diff -up bash-4.0-rc1/Makefile.in.no_debug_output bash-4.0-rc1/Makefile.in ---- bash-4.0-rc1/Makefile.in.no_debug_output 2009-01-29 14:40:11.000000000 +0100 -+++ bash-4.0-rc1/Makefile.in 2009-01-29 14:40:54.000000000 +0100 -@@ -112,7 +112,7 @@ VENDOR = @host_vendor@ - MACHTYPE = @host@ - - # comment out for release --DEBUG = @DEBUG@ -+#DEBUG = @DEBUG@ - MALLOC_DEBUG = @MALLOC_DEBUG@ - - THIS_SH = $(BUILD_DIR)/$(Program) diff --git a/bash-4.0-shell_pipelines_handling.patch b/bash-4.0-shell_pipelines_handling.patch deleted file mode 100644 index b9267b8..0000000 --- a/bash-4.0-shell_pipelines_handling.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -up bash-4.0-rc1/execute_cmd.c.shell_pipelines_handling bash-4.0-rc1/execute_cmd.c ---- bash-4.0-rc1/execute_cmd.c.shell_pipelines_handling 2009-02-11 12:56:13.000000000 +0100 -+++ bash-4.0-rc1/execute_cmd.c 2009-02-11 12:57:20.000000000 +0100 -@@ -756,7 +756,7 @@ execute_command_internal (command, async - the presence of a pipeline, and (until Posix changes things), a - pipeline failure should not cause the parent shell to exit on an - unsuccessful return status, even in the presence of errexit.. */ -- if (was_error_trap && ignore_return == 0 && invert == 0 && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS) -+ if (was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS) - { - last_command_exit_value = exec_result; - run_error_trap (); -@@ -764,7 +764,7 @@ execute_command_internal (command, async - - if (ignore_return == 0 && invert == 0 && - ((posixly_correct && interactive == 0 && special_builtin_failed) || -- (exit_immediately_on_error && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS))) -+ (exit_immediately_on_error && exec_result != EXECUTION_SUCCESS))) - { - last_command_exit_value = exec_result; - run_pending_traps (); diff --git a/bash-ulimit-m.patch b/bash-ulimit-m.patch deleted file mode 100644 index 0a64c63..0000000 --- a/bash-ulimit-m.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up bash-4.0/doc/bash.1.ulimit-m bash-4.0/doc/bash.1 ---- bash-4.0/doc/bash.1.ulimit-m 2009-01-21 16:31:19.000000000 +0100 -+++ bash-4.0/doc/bash.1 2009-01-21 16:31:19.000000000 +0100 -@@ -9044,7 +9044,7 @@ The maximum number of pending signals - The maximum size that may be locked into memory - .TP - .B \-m --The maximum resident set size -+The maximum resident set size (has no effect on Linux) - .TP - .B \-n - The maximum number of open file descriptors (most systems do not -diff -up bash-4.0/builtins/ulimit.def.ulimit-m bash-4.0/builtins/ulimit.def ---- bash-4.0/builtins/ulimit.def.ulimit-m 2009-01-04 20:32:23.000000000 +0100 -+++ bash-4.0/builtins/ulimit.def 2009-01-21 16:36:12.000000000 +0100 -@@ -40,7 +40,7 @@ Options: - -f the maximum size of files written by the shell and its children - -i the maximum number of pending signals - -l the maximum size a process may lock into memory -- -m the maximum resident set size -+ -m the maximum resident set size (has no effect on Linux) - -n the maximum number of open file descriptors - -p the pipe buffer size - -q the maximum number of bytes in POSIX message queues diff --git a/bash.spec b/bash.spec index 25f5f43..70dadf6 100644 --- a/bash.spec +++ b/bash.spec @@ -1,11 +1,11 @@ #%define beta_tag rc1 -%define patchlevel .28 +%define patchlevel .33 %define baseversion 4.0 Version: %{baseversion}%{patchlevel} Name: bash Summary: The GNU Bourne Again shell -Release: 3%{?dist} +Release: 1%{?dist} Group: System Environment/Shells License: GPLv2+ Url: http://www.gnu.org/software/bash @@ -47,6 +47,11 @@ Patch025: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-025 Patch026: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-026 Patch027: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-027 Patch028: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-028 +Patch029: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-029 +Patch030: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-030 +Patch031: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-031 +Patch032: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-032 +Patch033: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/bash40-033 # Other patches Patch101: bash-2.02-security.patch @@ -59,7 +64,6 @@ Patch107: bash-2.05b-pgrp_sync.patch Patch108: bash-2.05b-readline-oom.patch Patch109: bash-2.05b-xcc.patch Patch110: bash-3.2-audit.patch -#Patch111: bash-3.2-rng.patch Patch112: bash-3.2-ssh_source_bash.patch Patch113: bash-bashbug.patch Patch114: bash-cond-rmatch.patch @@ -67,12 +71,7 @@ Patch115: bash-infotags.patch Patch116: bash-requires.patch Patch117: bash-setlocale.patch Patch118: bash-tty-tests.patch -#Patch119: bash-ulimit-m.patch -#Patch120: bash-4.0-no_debug_output.patch -#Patch121: bash-4.0-shell_pipelines_handling.patch -# 518644, alloc memory for key in associative array creation -Patch122: bash-4.0-key_alloc.patch # 484809, check if interp section is NOBITS Patch123: bash-4.0-nobits.patch @@ -133,6 +132,11 @@ This package contains documentation files for %{name}. %patch026 -p0 -b .026 %patch027 -p0 -b .027 %patch028 -p0 -b .028 +%patch029 -p0 -b .029 +%patch030 -p0 -b .030 +%patch031 -p0 -b .031 +%patch032 -p0 -b .032 +%patch033 -p0 -b .033 # Other patches %patch101 -p1 -b .security @@ -145,7 +149,6 @@ This package contains documentation files for %{name}. %patch108 -p1 -b .readline_oom %patch109 -p1 -b .xcc %patch110 -p1 -b .audit -#%patch111 -p1 -b .rng %patch112 -p1 -b .ssh_source_bash %patch113 -p1 -b .bashbug %patch114 -p1 -b .cond_rmatch @@ -153,10 +156,6 @@ This package contains documentation files for %{name}. %patch116 -p1 -b .requires %patch117 -p1 -b .setlocale %patch118 -p1 -b .tty_tests -#%patch119 -p1 -b .ulimit-m -#%patch120 -p1 -b .no_debug_output -#%patch121 -p1 -b .pipelines_handling -%patch122 -p1 -b .key_alloc %patch123 -p1 -b .nobits echo %{version} > _distribution @@ -324,6 +323,10 @@ fi #%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt %changelog +* Wed Sep 16 2009 Roman Rakus - 4.0.33-1 +- Patch level 33 +- spec file cleanup + * Fri Sep 04 2009 Roman Rakus - 4.0.28-3 - check if interp section is NOBITS - define Recycles pids diff --git a/bash40-029 b/bash40-029 new file mode 100644 index 0000000..a13176d --- /dev/null +++ b/bash40-029 @@ -0,0 +1,106 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-029 + +Bug-Reported-by: Christian Krause +Bug-Reference-ID: Thu, 25 Jun 2009 21:47:59 +0200 +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-06/msg00078.html + +Bug-Description: + +Previous versions of bash accepted strings in the initial environment +that were not valid shell variable assignments, usually because the +names were invalid, but still created shell variables from them and +passed them to child processes in the environment. + +Bash-4.0 ignores those names and does not pass them to child processes. +Some users and automated processes depend on invalid variables being +ignored and passed to child processes. + +This patch makes bash continue to ignore the invalid names, but pass +them to child processes in the export environment. + +Patch: + +*** ../bash-4.0-patched/variables.c 2009-01-04 14:32:46.000000000 -0500 +--- variables.c 2009-06-29 09:17:20.000000000 -0400 +*************** +*** 253,256 **** +--- 255,259 ---- + static int visible_var __P((SHELL_VAR *)); + static int visible_and_exported __P((SHELL_VAR *)); ++ static int export_environment_candidate __P((SHELL_VAR *)); + static int local_and_exported __P((SHELL_VAR *)); + static int variable_in_context __P((SHELL_VAR *)); +*************** +*** 376,383 **** + # endif + #endif + else if (legal_identifier (name)) + { + temp_var = bind_variable (name, string, 0); +! VSETATTR (temp_var, (att_exported | att_imported)); + array_needs_making = 1; + } +--- 379,393 ---- + # endif + #endif ++ #if 0 + else if (legal_identifier (name)) ++ #else ++ else ++ #endif + { + temp_var = bind_variable (name, string, 0); +! if (legal_identifier (name)) +! VSETATTR (temp_var, (att_exported | att_imported)); +! else +! VSETATTR (temp_var, (att_exported | att_imported | att_invisible)); + array_needs_making = 1; + } +*************** +*** 3083,3086 **** +--- 3098,3111 ---- + } + ++ /* Candidate variables for the export environment are either valid variables ++ with the export attribute or invalid variables inherited from the initial ++ environment and simply passed through. */ ++ static int ++ export_environment_candidate (var) ++ SHELL_VAR *var; ++ { ++ return (exported_p (var) && (invisible_p (var) == 0 || imported_p (var))); ++ } ++ + /* Return non-zero if VAR is a local variable in the current context and + is exported. */ +*************** +*** 3439,3443 **** +--- 3464,3472 ---- + SHELL_VAR **vars; + ++ #if 0 + vars = map_over (visible_and_exported, vcxt); ++ #else ++ vars = map_over (export_environment_candidate, vcxt); ++ #endif + + if (vars == 0) +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 28 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 29 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash40-030 b/bash40-030 new file mode 100644 index 0000000..e4f0389 --- /dev/null +++ b/bash40-030 @@ -0,0 +1,64 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-030 + +Bug-Reported-by: Henning Bekel +Bug-Reference-ID: <7c6eacF262ctuU1@mid.individual.net> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-07/msg00054.html + +Bug-Description: + +A shell function invoked with `bind -x' is supposed to be able to move the +cursor by setting READLINE_POINT. The effects of this assignment were +sometimes ignored. + +Patch: + +*** ../bash-4.0-patched/bashline.c 2009-01-08 09:29:24.000000000 -0500 +--- bashline.c 2009-07-16 14:13:41.000000000 -0400 +*************** +*** 3389,3393 **** + register int i; + intmax_t mi; +- int save_point; + sh_parser_state_t ps; + char *cmd, *value, *l; +--- 3389,3392 ---- +*************** +*** 3433,3437 **** + VSETATTR (v, att_exported); + l = value_cell (v); +- save_point = rl_point; + value = inttostr (rl_point, ibuf, sizeof (ibuf)); + v = bind_int_variable ("READLINE_POINT", value); +--- 3432,3435 ---- +*************** +*** 3451,3455 **** + { + i = mi; +! if (i != save_point) + { + rl_point = i; +--- 3449,3453 ---- + { + i = mi; +! if (i != rl_point) + { + rl_point = i; +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 29 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 30 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash40-031 b/bash40-031 new file mode 100644 index 0000000..db46aa3 --- /dev/null +++ b/bash40-031 @@ -0,0 +1,62 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-031 + +Bug-Reported-by: Roman Rakus +Bug-Reference-ID: <4A93F6E9.4050401@redhat.com> +Bug-Reference-URL: + +Bug-Description: + +An implicit assignment to index "0" of an existing array variable caused +the shell to crash when the variable was unset. + +Patch: + +*** ../bash-4.0-patched/arrayfunc.c 2009-03-08 21:24:39.000000000 -0400 +--- arrayfunc.c 2009-08-24 09:29:43.000000000 -0400 +*************** +*** 99,103 **** + hash = assoc_create (0); + if (oldval) +! assoc_insert (hash, "0", oldval); + + FREE (value_cell (var)); +--- 99,103 ---- + hash = assoc_create (0); + if (oldval) +! assoc_insert (hash, savestring ("0"), oldval); + + FREE (value_cell (var)); +*** ../bash-4.0-patched/variables.c 2009-01-04 14:32:46.000000000 -0500 +--- variables.c 2009-08-24 09:29:58.000000000 -0400 +*************** +*** 2218,2222 **** + else if (assoc_p (entry)) + { +! assoc_insert (assoc_cell (entry), "0", newval); + free (newval); + } +--- 2218,2222 ---- + else if (assoc_p (entry)) + { +! assoc_insert (assoc_cell (entry), savestring ("0"), newval); + free (newval); + } +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 30 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 31 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash40-032 b/bash40-032 new file mode 100644 index 0000000..0c9ba74 --- /dev/null +++ b/bash40-032 @@ -0,0 +1,46 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-032 + +Bug-Reported-by: muszi@muszi.kite.hu +Bug-Reference-ID: <20090826113159.18815.qmail@muszi.kite.hu> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-08/msg00090.html + +Bug-Description: + +Bash-4.0 has a memory leak when processing ${!prefix@}. + +Patch: + +*** ../bash-4.0-patched/subst.c 2009-07-22 23:18:55.000000000 -0400 +--- subst.c 2009-08-26 23:08:51.000000000 -0400 +*************** +*** 6607,6611 **** + } + free (x); +! free (xlist); + free (temp1); + *indexp = sindex; +--- 6769,6773 ---- + } + free (x); +! dispose_words (xlist); + free (temp1); + *indexp = sindex; +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 31 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 32 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash40-033 b/bash40-033 new file mode 100644 index 0000000..80fcb6b --- /dev/null +++ b/bash40-033 @@ -0,0 +1,50 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-033 + +Bug-Reported-by: Dr. Werner Fink +Bug-Reference-ID: <200907010951.n619p76I013912@boole.suse.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-07/msg00000.html + +Bug-Description: + +Bash-4.0 has a memory leak in the `read' builtin when the number of fields +read is not the same as the number of variables passed as arguments. + +Patch: + +*** ../bash-4.0-patched/builtins/read.def 2009-03-08 21:24:45.000000000 -0400 +--- builtins/read.def 2009-07-01 15:32:42.000000000 -0400 +*************** +*** 764,768 **** + tofree = input_string = t; + else +! input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, saw_escape); + } + #endif +--- 764,771 ---- + tofree = input_string = t; + else +! { +! input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, saw_escape); +! tofree = t; +! } + } + #endif +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 32 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 33 + + #endif /* _PATCHLEVEL_H_ */