| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- This patch makes sure Bash does not segfault on empty here documents. It
- is derived from Gentoo Linux. The problem can be reproduced with "xargs
- <<< ${EMTPY_VARIABLE}".
- --- redir.c 2002-03-12 20:27:38.000000000 +0000
- +++ redir.c 2003-05-01 13:04:07.000000000 +0100
- @@ -263,8 +263,10 @@
- int herelen, n, e;
-
- herestr = expand_string_to_string (redirectee->word, 0);
- - herelen = strlen (herestr);
-
- + /* verify string wasnt empty */
- + herelen = (herestr == NULL) ? 0 : strlen (herestr);
- +
- n = write (fd, herestr, herelen);
- if (n == herelen)
- {
- -----------------------------------------------------------------------------
- This patch documents two implemented and classical command line options
- "-v" and "-v". It is derived from Debian GNU/Linux.
- --- doc/bash.1 Wed Jan 20 22:48:04 1999
- +++ doc/bash.1 Sun Nov 14 13:26:59 1999
- @@ -104,6 +104,12 @@
- This option allows the positional parameters to be set
- when invoking an interactive shell.
- .TP
- +.B \-v
- +Print shell input lines as they are read.
- +.TP
- +.B \-x
- +Print commands and their arguments as they are executed.
- +.TP
- .B \-D
- A list of all double-quoted strings preceded by \fB$\fP
- is printed on the standard ouput.
- -----------------------------------------------------------------------------
- This patch makes sure Bash does not segfault on on "shift" under "shopt
- -s shift_verbose". It is a null pointer dereference caused by an
- erroneous assumption that, when the number of arguments to shift exceeds
- the number of arguments available for shifting, the latter is always
- explicitly specified on the command line rather than left implicit at
- the default 1. The patch was derived from Debian GNU/Linux.
- --- builtins/shift.def.orig 2002-10-22 01:05:10.000000000 -0400
- +++ builtins/shift.def 2002-10-22 01:05:06.000000000 -0400
- @@ -68,7 +68,7 @@
- else if (times > number_of_args ())
- {
- if (print_shift_error)
- - sh_erange (list->word->word, "shift count");
- + sh_erange (list ? list->word->word : NULL, "shift count");
- return (EXECUTION_FAILURE);
- }
-
- -----------------------------------------------------------------------------
- This patch makes sure a signal state variable is declared "volatile" so
- it is consistent throughout signal handling. This patch is derived from
- SuSE Linux.
- --- quit.h
- +++ quit.h Wed May 2 17:38:34 2001
- @@ -21,8 +21,8 @@
- #if !defined (_QUIT_H_)
- #define _QUIT_H_
-
- /* Non-zero means SIGINT has already ocurred. */
- -extern int interrupt_state;
- +extern volatile int interrupt_state;
-
- /* Macro to call a great deal. SIGINT just sets above variable. When
- it is safe, put QUIT in the code, and the "interrupt" will take place. */
- --- sig.c
- +++ sig.c Wed May 2 17:36:17 2001
- @@ -57,7 +57,7 @@
- extern int interactive, interactive_shell, login_shell, startup_state;
-
- /* Non-zero after SIGINT. */
- -int interrupt_state;
- +volatile int interrupt_state = 0;
-
- /* The environment at the top-level R-E loop. We use this in
- the case of error return. */
- @@ -69,7 +69,7 @@
- #endif /* JOB_CONTROL */
-
- /* When non-zero, we throw_to_top_level (). */
- -int interrupt_immediately = 0;
- +volatile int interrupt_immediately = 0;
-
- static void initialize_shell_signals ();
-
- -----------------------------------------------------------------------------
- This patch adds an explicit recognition for terminal sequence "kD" to be
- "Delete" key. This is derived from Debian GNU/Linux and SuSE Linux.
- --- lib/readline/terminal.c
- +++ lib/readline/terminal.c Thu Jul 18 14:34:00 2002
- @@ -145,6 +145,9 @@
- static char *_rl_term_kH;
- static char *_rl_term_at7; /* @7 */
-
- +/* The key sequence sent by the Delete key, if any. */
- +static char *_rl_term_kD;
- +
- /* Insert key */
- static char *_rl_term_kI;
-
- @@ -313,6 +316,7 @@
- { "ei", &_rl_term_ei },
- { "ic", &_rl_term_ic },
- { "im", &_rl_term_im },
- + { "kD", &_rl_term_kD }, /* delete */
- { "kH", &_rl_term_kH }, /* home down ?? */
- { "kI", &_rl_term_kI }, /* insert */
- { "kd", &_rl_term_kd },
- @@ -496,6 +500,7 @@
-
- _rl_bind_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */
- _rl_bind_if_unbound (_rl_term_at7, rl_end_of_line); /* End */
- + _rl_bind_if_unbound (_rl_term_kD, rl_delete); /* Delete */
-
- _rl_keymap = xkeymap;
- }
- -----------------------------------------------------------------------------
- This patch makes sure Bash does not segfault on a particular error.
- It is derived from RedHat Linux.
- --- builtins/common.c.warnings 2003-03-25 17:48:02.000000000 +0000
- +++ builtins/common.c 2003-03-25 17:49:03.000000000 +0000
- @@ -244,7 +244,7 @@
- char *s;
- {
- if (s)
- - builtin_error ("%s: no job control");
- + builtin_error ("%s: no job control", s);
- else
- builtin_error ("no job control");
- }
- -----------------------------------------------------------------------------
- This adds the OpenPKG packaging brand.
- Index: version.c
- --- version.c.orig 2002-04-03 15:49:19.000000000 +0200
- +++ version.c 2003-10-06 17:23:18.000000000 +0200
- @@ -63,7 +63,7 @@
- show_shell_version (extended)
- int extended;
- {
- - printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE);
- + printf ("GNU bash, version %s (%s) [@l_openpkg_release@]\n", shell_version_string (), MACHTYPE);
- if (extended)
- printf ("Copyright (C) 2002 Free Software Foundation, Inc.\n");
- }
- -----------------------------------------------------------------------------
- Port to HP-UX 11i and similar less smart platforms.
- Index: configure
- --- configure.orig 2002-07-16 15:31:47.000000000 +0200
- +++ configure 2004-06-07 10:31:26.000000000 +0200
- @@ -1146,6 +1146,7 @@
- *-beos*) opt_bash_malloc=no ;; # they say it's suitable
- *-cygwin*) opt_bash_malloc=no ;; # Cygnus's CYGWIN environment
- *-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft
- +*-hpux*) opt_bash_malloc=no ;; # HP HP-UX
- esac
-
- # memory scrambling on free()
- @@ -1211,7 +1212,7 @@
-
- else
- MALLOC_LIB=
- - MALLOC_LIBRARY=
- + MALLOC_LIBRARY=dummy
- MALLOC_LDFLAGS=
- MALLOC_DEP=
- fi
- Index: mksyntax.c
- --- mksyntax.c.orig 2002-02-07 15:32:28.000000000 +0100
- +++ mksyntax.c 2004-06-04 11:53:19.000000000 +0200
- @@ -128,7 +128,11 @@
-
- switch (i)
- {
- +#if defined(__STDC__)
- case '\a': xbuf[1] = 'a'; break;
- +#else
- + case 7: xbuf[1] = 'a'; break;
- +#endif
- case '\v': xbuf[1] = 'v'; break;
- case '\b': xbuf[1] = 'b'; break;
- case '\f': xbuf[1] = 'f'; break;
- Index: syntax.h
- --- syntax.h.orig 2002-02-25 17:52:37.000000000 +0100
- +++ syntax.h 2004-06-04 11:53:49.000000000 +0200
- @@ -21,6 +21,8 @@
- #ifndef _SYNTAX_H_
- #define _SYNTAX_H_
-
- +#include "config.h"
- +
- /* Defines for use by mksyntax.c */
-
- #define slashify_in_quotes "\\`$\"\n"
- Index: builtins/printf.def
- --- builtins/printf.def.orig 2002-05-13 20:36:04.000000000 +0200
- +++ builtins/printf.def 2004-06-04 11:57:44.000000000 +0200
- @@ -114,7 +114,7 @@
- static intmax_t getintmax __P((void));
- static uintmax_t getuintmax __P((void));
-
- -#if defined (HAVE_LONG_DOUBLE) && HAVE_DECL_STRTOLD
- +#if defined (HAVE_LONG_DOUBLE) && HAVE_DECL_STRTOLD && !defined(HPUX)
- typedef long double floatmax_t;
- # define FLOATMAX_CONV "L"
- # define strtofltmax strtold
|