bash: update to 4.3.39

This commit is contained in:
Tom G. Christensen 2015-07-02 18:12:40 +02:00
parent c12881ea92
commit 675a6ab322
41 changed files with 489 additions and 83 deletions

View File

@ -7,49 +7,53 @@
# Check the following 4 variables before running the script
topdir=bash
real_version=4.3
version=4.3.33
version=4.3.39
pkgver=1
source[0]=ftp://ftp.sunet.se/pub/gnu/bash/$topdir-$real_version.tar.gz
# Source function library
. ${BUILDPKG_SCRIPTS}/buildpkg.functions
# Patches have been run through:
# sed 's|../bash-4\.3/||'
# Otherwise they cannot be applied by GNU Patch 2.7.1
patch[0]=bash43-001.edited
patch[1]=bash43-002.edited
patch[2]=bash43-003.edited
patch[3]=bash43-004.edited
patch[4]=bash43-005.edited
patch[5]=bash43-006.edited
patch[6]=bash43-007.edited
patch[7]=bash43-008.edited
patch[8]=bash43-009.edited
patch[9]=bash43-010.edited
patch[10]=bash43-011.edited
patch[11]=bash43-012.edited
patch[12]=bash43-013.edited
patch[13]=bash43-014.edited
patch[14]=bash43-015.edited
patch[15]=bash43-016.edited
patch[16]=bash43-017.edited
patch[17]=bash43-018.edited
patch[18]=bash43-019.edited
patch[19]=bash43-020.edited
patch[20]=bash43-021.edited
patch[21]=bash43-022.edited
patch[22]=bash43-023.edited
patch[23]=bash43-024.edited
patch[24]=bash43-025.edited
patch[25]=bash43-026.edited
patch[26]=bash43-027.edited
patch[27]=bash43-028.edited
patch[28]=bash43-029.edited
patch[29]=bash43-030.edited
patch[30]=bash43-031.edited
patch[31]=bash43-032.edited
patch[32]=bash43-033.edited
patch[0]="" # no sparse array support in buildpkg
patch[1]=bash43-001
patch[2]=bash43-002
patch[3]=bash43-003
patch[4]=bash43-004
patch[5]=bash43-005
patch[6]=bash43-006
patch[7]=bash43-007
patch[8]=bash43-008
patch[9]=bash43-009
patch[10]=bash43-010
patch[11]=bash43-011
patch[12]=bash43-012
patch[13]=bash43-013
patch[14]=bash43-014
patch[15]=bash43-015
patch[16]=bash43-016
patch[17]=bash43-017
patch[18]=bash43-018
patch[19]=bash43-019
patch[20]=bash43-020
patch[21]=bash43-021
patch[22]=bash43-022
patch[23]=bash43-023
patch[24]=bash43-024
patch[25]=bash43-025
patch[26]=bash43-026
patch[27]=bash43-027
patch[28]=bash43-028
patch[29]=bash43-029
patch[30]=bash43-030
patch[31]=bash43-031
patch[32]=bash43-032
patch[33]=bash43-033
patch[34]=bash43-034
patch[35]=bash43-035
patch[36]=bash43-036
patch[37]=bash43-037
patch[38]=bash43-038
patch[39]=bash43-039
# Global settings
export CPPFLAGS="-I$prefix/include"
@ -90,6 +94,7 @@ install()
compat bash 4.3.26 1 1
compat bash 4.3.27 1 1
compat bash 4.3.30 1 1
compat bash 4.3.33 1 1
}
reg pack

View File

@ -1,5 +1,8 @@
CHANGELOG
---------
* Wed Jul 01 2015 Tom G. Christensen <swpkg@jupiterrise.com> - 4,3,39-1
- Update to 4.3.39
* Sun Mar 15 2015 Tom G. Christensen <swpkg@jupiterrise.com> - 4.3.33-1
- Update to 4.3.33

View File

@ -16,7 +16,7 @@ processing the argument to `test -R'.
Patch (apply with `patch -p0'):
*** test.c 2014-02-04 16:52:58.000000000 -0500
*** ../bash-4.3/test.c 2014-02-04 16:52:58.000000000 -0500
--- test.c 2014-02-28 21:22:44.000000000 -0500
***************
*** 647,652 ****
@ -41,7 +41,7 @@ Patch (apply with `patch -p0'):
+ case 'R':
return (1);
}
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -15,7 +15,7 @@ on systems which need process group synchronization while building pipelines.
Patch (apply with `patch -p0'):
*** trap.c 2014-02-05 10:03:21.000000000 -0500
*** ../bash-4.3/trap.c 2014-02-05 10:03:21.000000000 -0500
--- trap.c 2014-02-28 09:51:43.000000000 -0500
***************
*** 921,925 ****
@ -45,7 +45,7 @@ Patch (apply with `patch -p0'):
! restore_pipeline (1);
#endif
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -15,7 +15,7 @@ fault by passing invalid contexts to callback functions.
Patch (apply with `patch -p0'):
*** lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400
*** ../bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400
--- lib/readline/readline.c 2014-03-10 14:15:02.000000000 -0400
***************
*** 745,749 ****
@ -31,7 +31,7 @@ Patch (apply with `patch -p0'):
! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */
{
_rl_keyseq_chain_dispose ();
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -15,7 +15,7 @@ The `.' command in vi mode cannot undo multi-key commands beginning with
Patch (apply with `patch -p0'):
*** lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400
*** ../bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400
--- lib/readline/readline.c 2014-03-07 15:20:33.000000000 -0500
***************
*** 965,969 ****
@ -30,7 +30,7 @@ Patch (apply with `patch -p0'):
! _rl_dispatching_keymap == vi_movement_keymap &&
_rl_vi_textmod_command (key))
_rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -16,7 +16,7 @@ expansions within double quotes.
Patch (apply with `patch -p0'):
*** parse.y 2014-02-11 09:42:10.000000000 -0500
*** ../bash-4.3/parse.y 2014-02-11 09:42:10.000000000 -0500
--- parse.y 2014-03-07 20:57:15.000000000 -0500
***************
*** 3399,3403 ****
@ -31,7 +31,7 @@ Patch (apply with `patch -p0'):
! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
continue;
*** y.tab.c 2014-02-11 10:57:47.000000000 -0500
*** ../bash-4.3/y.tab.c 2014-02-11 10:57:47.000000000 -0500
--- y.tab.c 2014-03-28 10:41:15.000000000 -0400
***************
*** 5711,5715 ****
@ -46,7 +46,7 @@ Patch (apply with `patch -p0'):
! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
continue;
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -16,7 +16,7 @@ shell to get a stop signal when it attempted to read from the terminal.
Patch (apply with `patch -p0'):
*** jobs.c 2014-01-10 09:05:34.000000000 -0500
*** ../bash-4.3/jobs.c 2014-01-10 09:05:34.000000000 -0500
--- jobs.c 2014-03-02 18:05:09.000000000 -0500
***************
*** 4375,4379 ****
@ -31,7 +31,7 @@ Patch (apply with `patch -p0'):
! if (interactive_shell || job_control) /* XXX - should it be just job_control? */
{
terminate_stopped_jobs ();
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -19,7 +19,7 @@ lookups to interpret it as unset.
Patch (apply with `patch -p0'):
*** arrayfunc.c 2013-08-02 16:19:59.000000000 -0400
*** ../bash-4.3/arrayfunc.c 2013-08-02 16:19:59.000000000 -0400
--- arrayfunc.c 2014-03-18 11:08:15.000000000 -0400
***************
*** 598,601 ****
@ -33,7 +33,7 @@ Patch (apply with `patch -p0'):
+ }
free_val = 1;
}
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -15,7 +15,7 @@ dot, regardless of the setting of the `dotglob' option.
Patch (apply with `patch -p0'):
*** lib/glob/gmisc.c 2013-10-28 14:45:25.000000000 -0400
*** ../bash-4.3/lib/glob/gmisc.c 2013-10-28 14:45:25.000000000 -0400
--- lib/glob/gmisc.c 2014-03-19 09:16:08.000000000 -0400
***************
*** 211,214 ****
@ -25,7 +25,7 @@ Patch (apply with `patch -p0'):
+ case '?':
return (pat[1] == LPAREN);
default:
*** lib/glob/glob.c 2014-01-31 21:43:51.000000000 -0500
*** ../bash-4.3/lib/glob/glob.c 2014-01-31 21:43:51.000000000 -0500
--- lib/glob/glob.c 2014-03-20 09:01:26.000000000 -0400
***************
*** 180,202 ****
@ -171,7 +171,7 @@ Patch (apply with `patch -p0'):
! return 0;
#else
return (wchkname (pat, dname));
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -47,7 +47,7 @@ Patch (apply with `patch -p0'):
! if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size))
shell_input_line = (char *)xrealloc (shell_input_line,
1 + (shell_input_line_size += 2));
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -33,7 +33,7 @@ This patch fixes two cases:
In these cases, since readline did not detect a quote character in the original
word to be completed, bash-4.3
*** externs.h 2014-01-02 14:58:20.000000000 -0500
*** ../bash-4.3/externs.h 2014-01-02 14:58:20.000000000 -0500
--- externs.h 2014-03-13 14:42:57.000000000 -0400
***************
*** 325,328 ****
@ -43,7 +43,7 @@ word to be completed, bash-4.3
+ extern int sh_contains_quotes __P((char *));
/* declarations for functions defined in lib/sh/spell.c */
*** lib/sh/shquote.c 2013-03-31 21:53:32.000000000 -0400
*** ../bash-4.3/lib/sh/shquote.c 2013-03-31 21:53:32.000000000 -0400
--- lib/sh/shquote.c 2014-03-13 14:42:57.000000000 -0400
***************
*** 312,313 ****
@ -64,7 +64,7 @@ word to be completed, bash-4.3
+ }
+ return 0;
+ }
*** pcomplete.c 2013-08-26 15:23:45.000000000 -0400
*** ../bash-4.3/pcomplete.c 2013-08-26 15:23:45.000000000 -0400
--- pcomplete.c 2014-03-25 17:23:23.000000000 -0400
***************
*** 184,187 ****
@ -140,7 +140,7 @@ word to be completed, bash-4.3
+ pcomp_curtxt = oldtxt;
/* We need to conditionally handle setting *retryp here */
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -32,7 +32,7 @@ Patch (apply with `patch -p0'):
! _rl_move_vert (_rl_vis_botlin);
_rl_vis_botlin = 0;
fflush (rl_outstream);
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -26,7 +26,7 @@ Patch (apply with `patch -p0'):
+ unwind_protect_pointer (this_shell_builtin);
/* We have to add the commands this way because they will be run
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -49,7 +49,7 @@ Patch (apply with `patch -p0'):
! }
}
}
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -85,7 +85,7 @@ Patch (apply with `patch -p0'):
+ set_word_flags:
if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (quoted_state == WHOLLY_QUOTED))
tword->flags |= W_QUOTED;
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -41,7 +41,7 @@ Patch (apply with `patch -p0'):
! free (dfn);
if (m1 == 0 || m1[0] == 0)
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -115,7 +115,7 @@ Patch (apply with `patch -p0'):
+ return d;
+ }
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -34,7 +34,7 @@ Patch (apply with `patch -p0'):
was_tmpvar = old_var && tempvar_p (old_var);
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -27,7 +27,7 @@ Patch (apply with `patch -p0'):
return (entry);
}
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -67,7 +67,7 @@ Patch (apply with `patch -p0'):
+ bashline_reset_event_hook ();
if (ret == 0)
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -93,7 +93,7 @@ Patch (apply with `patch -p0'):
+ need_here_doc = ps->need_here_doc;
FREE (token);
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -35,7 +35,7 @@ Patch (apply with `patch -p0'):
entry = previous_history ();
--- 470,473 ----
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -39,7 +39,7 @@ Patch (apply with `patch -p0'):
!
#endif
unfreeze_jobs_list ();
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -87,7 +87,7 @@ Patch (apply with `patch -p0'):
! temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index, 0); /*))*/
sindex = t_index;
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -37,7 +37,7 @@ Patch (apply with `patch -p0'):
! }
else
tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind);
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -106,7 +106,7 @@ Patch (apply with `patch -p0'):
! else if ((var = find_variable_last_nameref (temp1)) && var_isset (var) && invisible_p (var) == 0)
{
temp = nameref_cell (var);
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -43,7 +43,7 @@ Patch (apply with `patch -p0'):
#endif /* HANDLE_MULTIBYTE */
-
--- 8542,8543 ----
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -204,7 +204,7 @@ Patch (apply with `patch -p0'):
! : mk_env_string (var->name, value, function_p (var));
if (USE_EXPORTSTR == 0)
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -2248,7 +2248,7 @@ Patch (apply with `patch -p0'):
}
#endif /* HANDLE_MULTIBYTE */
+
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -42,7 +42,7 @@ Patch (apply with `patch -p0'):
! new_redirect->here_doc_eof = redirect->here_doc_eof ? savestring (redirect->here_doc_eof) : 0;
/*FALLTHROUGH*/
case r_reading_string:
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -2047,7 +2047,7 @@ Patch (apply with `patch -p0'):
! token_to_read = 0;
/* Need to find how many characters parse_and_execute consumed, update
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -95,7 +95,7 @@ Patch (apply with `patch -p0'):
! return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags|ASS_FROMREF));
}
else
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -34,7 +34,7 @@ Patch (apply with `patch -p0'):
! queue_sigchld_trap (children_exited);
wait_signal_received = SIGCHLD;
/* If we're in a signal handler, let CHECK_WAIT_INTR pick it up;
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

View File

@ -208,7 +208,7 @@ Patch (apply with `patch -p0'):
! if (RL_ISSTATE (RL_STATE_SIGHANDLER) || RL_ISSTATE (RL_STATE_TERMPREPPED))
bashline_set_event_hook ();
#endif
*** patchlevel.h 2012-12-29 10:47:57.000000000 -0500
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****

90
bash/src/bash43-034 Normal file
View File

@ -0,0 +1,90 @@
BASH PATCH REPORT
=================
Bash-Release: 4.3
Patch-ID: bash43-034
Bug-Reported-by: Dreamcat4 <dreamcat4@gmail.com>
Bug-Reference-ID: <CAN39uTpAEs2GFu4ebC_SfSVMRTh-DJ9YanrY4BZZ3OO+CCHjng@mail.gmail.com>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-05/msg00001.html
Bug-Description:
If neither the -f nor -v options is supplied to unset, and a name argument is
found to be a function and unset, subsequent name arguments are not treated as
variables before attempting to unset a function by that name.
Patch (apply with `patch -p0'):
*** ../bash-4.3-patched/builtins/set.def 2013-04-19 07:20:34.000000000 -0400
--- builtins/set.def 2015-05-05 13:25:36.000000000 -0400
***************
*** 752,758 ****
--- 797,805 ----
{
int unset_function, unset_variable, unset_array, opt, nameref, any_failed;
+ int global_unset_func, global_unset_var;
char *name;
unset_function = unset_variable = unset_array = nameref = any_failed = 0;
+ global_unset_func = global_unset_var = 0;
reset_internal_getopt ();
***************
*** 762,769 ****
{
case 'f':
! unset_function = 1;
break;
case 'v':
! unset_variable = 1;
break;
case 'n':
--- 809,816 ----
{
case 'f':
! global_unset_func = 1;
break;
case 'v':
! global_unset_var = 1;
break;
case 'n':
***************
*** 778,782 ****
list = loptend;
! if (unset_function && unset_variable)
{
builtin_error (_("cannot simultaneously unset a function and a variable"));
--- 825,829 ----
list = loptend;
! if (global_unset_func && global_unset_var)
{
builtin_error (_("cannot simultaneously unset a function and a variable"));
***************
*** 796,799 ****
--- 843,849 ----
name = list->word->word;
+ unset_function = global_unset_func;
+ unset_variable = global_unset_var;
+
#if defined (ARRAY_VARS)
unset_array = 0;
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 33
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 34
#endif /* _PATCHLEVEL_H_ */

63
bash/src/bash43-035 Normal file
View File

@ -0,0 +1,63 @@
BASH PATCH REPORT
=================
Bash-Release: 4.3
Patch-ID: bash43-035
Bug-Reported-by: <romerox.adrian@gmail.com>
Bug-Reference-ID: <CABV5r3zhPXmSKUe9uedeGc5YFBM2njJ1iVmY2h5neWdQpDBQug@mail.gmail.com>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00045.html
Bug-Description:
A locale with a long name can trigger a buffer overflow and core dump. This
applies on systems that do not have locale_charset in libc, are not using
GNU libiconv, and are not using the libintl that ships with bash in lib/intl.
Patch (apply with `patch -p0'):
*** ../bash-4.3-patched/lib/sh/unicode.c 2014-01-30 16:47:19.000000000 -0500
--- lib/sh/unicode.c 2015-05-01 08:58:30.000000000 -0400
***************
*** 79,83 ****
if (s)
{
! strcpy (charsetbuf, s+1);
t = strchr (charsetbuf, '@');
if (t)
--- 79,84 ----
if (s)
{
! strncpy (charsetbuf, s+1, sizeof (charsetbuf) - 1);
! charsetbuf[sizeof (charsetbuf) - 1] = '\0';
t = strchr (charsetbuf, '@');
if (t)
***************
*** 85,89 ****
return charsetbuf;
}
! strcpy (charsetbuf, locale);
return charsetbuf;
}
--- 86,91 ----
return charsetbuf;
}
! strncpy (charsetbuf, locale, sizeof (charsetbuf) - 1);
! charsetbuf[sizeof (charsetbuf) - 1] = '\0';
return charsetbuf;
}
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 34
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 35
#endif /* _PATCHLEVEL_H_ */

57
bash/src/bash43-036 Normal file
View File

@ -0,0 +1,57 @@
BASH PATCH REPORT
=================
Bash-Release: 4.3
Patch-ID: bash43-036
Bug-Reported-by: emanuelczirai@cryptolab.net
Bug-Reference-ID: <f962e4f556da5ebfadaf7afe9c78a8cb@cryptolab.net>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00071.html
Bug-Description:
When evaluating and setting integer variables, and the assignment fails to
create a variable (for example, when performing an operation on an array
variable with an invalid subscript), bash attempts to dereference a null
pointer, causing a segmentation violation.
Patch (apply with `patch -p0'):
*** ../bash-20150206/variables.c 2015-01-23 20:39:27.000000000 -0500
--- variables.c 2015-02-19 13:56:12.000000000 -0500
***************
*** 2834,2841 ****
v = bind_variable (lhs, rhs, 0);
! if (v && isint)
! VSETATTR (v, att_integer);
!
! VUNSETATTR (v, att_invisible);
return (v);
--- 2834,2843 ----
v = bind_variable (lhs, rhs, 0);
! if (v)
! {
! if (isint)
! VSETATTR (v, att_integer);
! VUNSETATTR (v, att_invisible);
! }
return (v);
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 35
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 36
#endif /* _PATCHLEVEL_H_ */

43
bash/src/bash43-037 Normal file
View File

@ -0,0 +1,43 @@
BASH PATCH REPORT
=================
Bash-Release: 4.3
Patch-ID: bash43-037
Bug-Reported-by: Greg Wooledge <wooledg@eeg.ccf.org>
Bug-Reference-ID: <20150204144240.GN13956@eeg.ccf.org>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00007.html
Bug-Description:
If an associative array uses `@' or `*' as a subscript, `declare -p' produces
output that cannot be reused as input.
Patch (apply with `patch -p0'):
*** ../bash-4.3-patched/assoc.c 2011-11-05 16:39:05.000000000 -0400
--- assoc.c 2015-02-04 15:28:25.000000000 -0500
***************
*** 437,440 ****
--- 440,445 ----
if (sh_contains_shell_metas (tlist->key))
istr = sh_double_quote (tlist->key);
+ else if (ALL_ELEMENT_SUB (tlist->key[0]) && tlist->key[1] == '\0')
+ istr = sh_double_quote (tlist->key);
else
istr = tlist->key;
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 36
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 37
#endif /* _PATCHLEVEL_H_ */

88
bash/src/bash43-038 Normal file
View File

@ -0,0 +1,88 @@
BASH PATCH REPORT
=================
Bash-Release: 4.3
Patch-ID: bash43-038
Bug-Reported-by: worley@alum.mit.edu (Dale R. Worley)
Bug-Reference-ID: <201406100051.s5A0pCeB014978@hobgoblin.ariadne.com>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00028.html
Bug-Description:
There are a number of instances where `time' is not recognized as a reserved
word when the shell grammar says it should be.
Patch (apply with `patch -p0'):
*** ../bash-4.3-patched/parse.y 2014-04-07 11:56:12.000000000 -0400
--- parse.y 2014-06-11 10:25:53.000000000 -0400
***************
*** 2819,2827 ****
case OR_OR:
case '&':
case DO:
case THEN:
case ELSE:
case '{': /* } */
! case '(': /* ) */
case BANG: /* ! time pipeline */
case TIME: /* time time pipeline */
--- 2819,2832 ----
case OR_OR:
case '&':
+ case WHILE:
case DO:
+ case UNTIL:
+ case IF:
case THEN:
+ case ELIF:
case ELSE:
case '{': /* } */
! case '(': /* )( */
! case ')': /* only valid in case statement */
case BANG: /* ! time pipeline */
case TIME: /* time time pipeline */
*** ../bash-4.3-patched/y.tab.c 2014-10-05 13:52:50.000000000 -0400
--- y.tab.c 2015-05-19 15:08:43.000000000 -0400
***************
*** 5131,5139 ****
case OR_OR:
case '&':
case DO:
case THEN:
case ELSE:
case '{': /* } */
! case '(': /* ) */
case BANG: /* ! time pipeline */
case TIME: /* time time pipeline */
--- 5131,5144 ----
case OR_OR:
case '&':
+ case WHILE:
case DO:
+ case UNTIL:
+ case IF:
case THEN:
+ case ELIF:
case ELSE:
case '{': /* } */
! case '(': /* )( */
! case ')': /* only valid in case statement */
case BANG: /* ! time pipeline */
case TIME: /* time time pipeline */
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 37
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 38
#endif /* _PATCHLEVEL_H_ */

57
bash/src/bash43-039 Normal file
View File

@ -0,0 +1,57 @@
BASH PATCH REPORT
=================
Bash-Release: 4.3
Patch-ID: bash43-039
Bug-Reported-by: SN <poczta-sn@gazeta.pl>
Bug-Reference-ID: <54E2554C.205@gazeta.pl>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00060.html
Bug-Description:
Using the output of `declare -p' when run in a function can result in variables
that are invisible to `declare -p'. This problem occurs when an assignment
builtin such as `declare' receives a quoted compound array assignment as one of
its arguments.
Patch (apply with `patch -p0'):
*** /usr/src/local/bash/bash-4.3-patched/arrayfunc.c 2014-10-01 13:08:48.000000000 -0400
--- arrayfunc.c 2015-02-19 14:33:05.000000000 -0500
***************
*** 405,408 ****
--- 405,411 ----
else
array_insert (a, i, l->word->word);
+
+ VUNSETATTR (var, att_invisible); /* no longer invisible */
+
return var;
}
***************
*** 635,638 ****
--- 638,645 ----
if (nlist)
dispose_words (nlist);
+
+ if (var)
+ VUNSETATTR (var, att_invisible); /* no longer invisible */
+
return (var);
}
*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 38
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 39
#endif /* _PATCHLEVEL_H_ */