nalika / rpms / bash

Forked from rpms/bash 2 years ago
Clone

07a490 import bash-4.2.46-30.el7

Authored and Committed by centosrcm 6 years ago
108 files changed. 8439 lines added. 5 lines removed.
.bash.metadata
file added
+1
.gitignore
file added
+1
README.md
file removed
-5
SOURCES/bash-2.02-security.patch
file added
+11
SOURCES/bash-2.03-paths.patch
file added
+30
SOURCES/bash-2.03-profile.patch
file added
+12
SOURCES/bash-2.05a-interpreter.patch
file added
+218
SOURCES/bash-2.05b-debuginfo.patch
file added
+10
SOURCES/bash-2.05b-manso.patch
file added
+10
SOURCES/bash-2.05b-pgrp_sync.patch
file added
+11
SOURCES/bash-2.05b-readline-oom.patch
file added
+11
SOURCES/bash-2.05b-xcc.patch
file added
+19
SOURCES/bash-3.2-audit.patch
file added
+108
SOURCES/bash-3.2-ssh_source_bash.patch
file added
+12
SOURCES/bash-4.0-nobits.patch
file added
+154
SOURCES/bash-4.1-broken_pipe.patch
file added
+12
SOURCES/bash-4.1-defer-sigchld-trap.patch
file added
+30
SOURCES/bash-4.1-examples.patch
file added
+24
SOURCES/bash-4.1-trap.patch
file added
+46
SOURCES/bash-4.2-brace-expand.patch
file added
+24
SOURCES/bash-4.2-case-in-command-subst.patch
file added
+21
SOURCES/bash-4.2-check-debugger.patch
file added
+87
SOURCES/bash-4.2-coverity.patch
file added
+99
SOURCES/bash-4.2-cve-2014-7169-0.patch
file added
+12
SOURCES/bash-4.2-cve-2014-7169-1.patch
file added
+147
SOURCES/bash-4.2-cve-2014-7169-2.patch
file added
+83
SOURCES/bash-4.2-double-alloc.patch
file added
+11
SOURCES/bash-4.2-enable-hyphened-fn-export.patch
file added
+11
SOURCES/bash-4.2-env-inject.patch
file added
+73
SOURCES/bash-4.2-extglob-man.patch
file added
+28
SOURCES/bash-4.2-history-hang.patch
file added
+11
SOURCES/bash-4.2-ifs-in-temp-env.patch
file added
+35
SOURCES/bash-4.2-leak-compound.patch
file added
+12
SOURCES/bash-4.2-man-ulimit.patch
file added
+24
SOURCES/bash-4.2-manpage.patch
file added
+53
SOURCES/bash-4.2-manpage_trap.patch
file added
+12
SOURCES/bash-4.2-missing-opt-cd.patch
file added
+12
SOURCES/bash-4.2-missing_closes.patch
file added
+39
SOURCES/bash-4.2-noecho.patch
file added
+39
SOURCES/bash-4.2-rc2-logout.patch
file added
+36
SOURCES/bash-4.2-signal.patch
file added
+36
SOURCES/bash-4.2-size_type.patch
file added
+14
SOURCES/bash-4.3-cve-2016-0634.patch
file added
+95
SOURCES/bash-4.3-cve-2016-7543.patch
file added
+20
SOURCES/bash-4.3-pipefd-leak.patch
file added
+60
SOURCES/bash-4.3-trapped-signals.patch
file added
+24
SOURCES/bash-4.3-wshouldquote.patch
file added
+149
SOURCES/bash-4.4-param-expansion.patch
file added
+73
SOURCES/bash-4.4-pipeline-pgrp.patch
file added
+17
SOURCES/bash-bashbug.patch
file added
+56
SOURCES/bash-cve-2016-9401.patch
file added
+28
SOURCES/bash-infotags.patch
file added
+30
SOURCES/bash-requires.patch
file added
+311
SOURCES/bash-setlocale.patch
file added
+10
SOURCES/bash-tty-tests.patch
file added
+54
SOURCES/bash42-001
file added
+78
SOURCES/bash42-002
file added
+60
SOURCES/bash42-003
file added
+318
SOURCES/bash42-004
file added
+53
SOURCES/bash42-005
file added
+131
SOURCES/bash42-006
file added
+46
SOURCES/bash42-007
file added
+46
SOURCES/bash42-008
file added
+74
SOURCES/bash42-009
file added
+82
SOURCES/bash42-010
file added
+61
SOURCES/bash42-011
file added
+46
SOURCES/bash42-012
file added
+151
SOURCES/bash42-013
file added
+52
SOURCES/bash42-014
file added
+47
SOURCES/bash42-015
file added
+81
SOURCES/bash42-016
file added
+46
SOURCES/bash42-017
file added
+47
SOURCES/bash42-018
file added
+74
SOURCES/bash42-019
file added
+47
SOURCES/bash42-020
file added
+60
SOURCES/bash42-021
file added
+61
SOURCES/bash42-022
file added
+61
SOURCES/bash42-023
file added
+62
SOURCES/bash42-024
file added
+45
SOURCES/bash42-025
file added
+143
SOURCES/bash42-026
file added
+58
SOURCES/bash42-027
file added
+47
SOURCES/bash42-028
file added
+52
SOURCES/bash42-029
file added
+524
SOURCES/bash42-030
file added
+178
SOURCES/bash42-031
file added
+80
SOURCES/bash42-032
file added
+75
SOURCES/bash42-033
file added
+57
SOURCES/bash42-034
file added
+46
SOURCES/bash42-035
file added
+66
SOURCES/bash42-036
file added
+92
SOURCES/bash42-037
file added
+112
SOURCES/bash42-038
file added
+47
SOURCES/bash42-039
file added
+58
SOURCES/bash42-040
file added
+56
SOURCES/bash42-041
file added
+47
SOURCES/bash42-042
file added
+57
SOURCES/bash42-043
file added
+65
SOURCES/bash42-044
file added
+70
SOURCES/bash42-045
file added
+53
SOURCES/bash42-046
file added
+55
SOURCES/bash42-052
file added
+44
SOURCES/bash42-053
file added
+117
SOURCES/dot-bash_logout
file added
+2
SOURCES/dot-bash_profile
file added
+12
SOURCES/dot-bashrc
file added
+11
SOURCES/fix-shopt-lastpipe-mode-crash.patch
file added
+48
SPECS/bash.spec
file added
+1772
    import bash-4.2.46-30.el7
    
        
file added
+1
.bash.metadata ADDED
@@ -0,0 +1 @@
1
+ 487840ab7134eb7901fbb2e49b0ee3d22de15cb8 SOURCES/bash-4.2.tar.gz
file added
+1
.gitignore ADDED
@@ -0,0 +1 @@
1
+ SOURCES/bash-4.2.tar.gz
file removed
-5
README.md DELETED
@@ -1,5 +0,0 @@
1
- The master branch has no content
2
-
3
- Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6
4
-
5
- If you find this file in a distro specific branch, it means that no content has been checked in yet
SOURCES/bash-2.02-security.patch ADDED
@@ -0,0 +1,11 @@
1
+ --- bash-2.02-orig/parse.y Wed Mar 25 18:16:23 1998
2
+ +++ bash-2.02/parse.y Sun Apr 19 16:46:34 1998
3
+ @@ -923,7 +923,7 @@
4
+
5
+ #if defined (READLINE)
6
+ char *current_readline_prompt = (char *)NULL;
7
+ -char *current_readline_line = (char *)NULL;
8
+ +unsigned char *current_readline_line = (unsigned char *)NULL;
9
+ int current_readline_line_index = 0;
10
+
11
+ static int
SOURCES/bash-2.03-paths.patch ADDED
@@ -0,0 +1,30 @@
1
+ --- bash-3.0/config.h.in.paths 2004-07-21 21:08:31.000000000 +0100
2
+ +++ bash-3.0/config.h.in 2004-07-28 09:16:27.257884999 +0100
3
+ @@ -197,7 +197,7 @@
4
+
5
+ /* System paths */
6
+
7
+ -#define DEFAULT_MAIL_DIRECTORY "/usr/spool/mail"
8
+ +#define DEFAULT_MAIL_DIRECTORY "/var/spool/mail"
9
+
10
+ /* Characteristics of the system's header files and libraries that affect
11
+ the compilation environment. */
12
+ --- bash-3.0/config-top.h.paths 2003-08-05 15:36:12.000000000 +0100
13
+ +++ bash-3.0/config-top.h 2004-07-28 09:36:27.117205637 +0100
14
+ @@ -52,14 +52,14 @@
15
+ /* The default value of the PATH variable. */
16
+ #ifndef DEFAULT_PATH_VALUE
17
+ #define DEFAULT_PATH_VALUE \
18
+ - "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:."
19
+ + "/usr/local/bin:/bin:/usr/bin"
20
+ #endif
21
+
22
+ /* The value for PATH when invoking `command -p'. This is only used when
23
+ the Posix.2 confstr () function, or CS_PATH define are not present. */
24
+ #ifndef STANDARD_UTILS_PATH
25
+ #define STANDARD_UTILS_PATH \
26
+ - "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc"
27
+ + "/bin:/usr/bin:/usr/sbin:/sbin"
28
+ #endif
29
+
30
+ /* Default primary and secondary prompt strings. */
SOURCES/bash-2.03-profile.patch ADDED
@@ -0,0 +1,12 @@
1
+ diff -up bash-3.2/config-top.h.profile bash-3.2/config-top.h
2
+ --- bash-3.2/config-top.h.profile 2008-07-17 13:35:39.000000000 +0200
3
+ +++ bash-3.2/config-top.h 2008-07-17 13:42:18.000000000 +0200
4
+ @@ -26,6 +26,8 @@
5
+ what POSIX.2 specifies. */
6
+ #define CONTINUE_AFTER_KILL_ERROR
7
+
8
+ +#define NON_INTERACTIVE_LOGIN_SHELLS
9
+ +
10
+ /* Define BREAK_COMPLAINS if you want the non-standard, but useful
11
+ error messages about `break' and `continue' out of context. */
12
+ #define BREAK_COMPLAINS
SOURCES/bash-2.05a-interpreter.patch ADDED
@@ -0,0 +1,218 @@
1
+ diff -up bash-4.2-rc2/config.h.in.interpreter bash-4.2-rc2/config.h.in
2
+ --- bash-4.2-rc2/config.h.in.interpreter 2011-02-09 07:59:21.000000000 +0100
3
+ +++ bash-4.2-rc2/config.h.in 2011-02-09 07:59:21.000000000 +0100
4
+ @@ -706,6 +706,9 @@
5
+ /* Define if you have the pathconf function. */
6
+ #undef HAVE_PATHCONF
7
+
8
+ +/* Define if you have the pread function. */
9
+ +#undef HAVE_PREAD
10
+ +
11
+ /* Define if you have the putenv function. */
12
+ #undef HAVE_PUTENV
13
+
14
+ @@ -898,6 +901,9 @@
15
+ /* Define if you have the <dlfcn.h> header file. */
16
+ #undef HAVE_DLFCN_H
17
+
18
+ +/* Define if you have the <elf.h> header file. */
19
+ +#undef HAVE_ELF_H
20
+ +
21
+ /* Define if you have the <grp.h> header file. */
22
+ #undef HAVE_GRP_H
23
+
24
+ diff -up bash-4.2-rc2/configure.in.interpreter bash-4.2-rc2/configure.in
25
+ --- bash-4.2-rc2/configure.in.interpreter 2011-01-16 21:31:12.000000000 +0100
26
+ +++ bash-4.2-rc2/configure.in 2011-02-09 08:02:27.000000000 +0100
27
+ @@ -659,7 +659,7 @@ BASH_HEADER_INTTYPES
28
+ AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
29
+ memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
30
+ stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h \
31
+ - syslog.h ulimit.h)
32
+ + syslog.h ulimit.h elf.h)
33
+ AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
34
+ sys/resource.h sys/param.h sys/socket.h sys/stat.h \
35
+ sys/time.h sys/times.h sys/types.h sys/wait.h)
36
+ @@ -723,7 +723,7 @@ dnl checks for system calls
37
+ AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
38
+ getpagesize getpeername getrlimit getrusage gettimeofday \
39
+ kill killpg lstat readlink sbrk select setdtablesize \
40
+ - setitimer tcgetpgrp uname ulimit waitpid)
41
+ + setitimer tcgetpgrp uname ulimit waitpid pread)
42
+ AC_REPLACE_FUNCS(rename)
43
+
44
+ dnl checks for c library functions
45
+ diff -up bash-4.2-rc2/execute_cmd.c.interpreter bash-4.2-rc2/execute_cmd.c
46
+ --- bash-4.2-rc2/execute_cmd.c.interpreter 2011-01-20 04:24:47.000000000 +0100
47
+ +++ bash-4.2-rc2/execute_cmd.c 2011-02-09 07:59:21.000000000 +0100
48
+ @@ -41,6 +41,10 @@
49
+ # include <unistd.h>
50
+ #endif
51
+
52
+ +#ifdef HAVE_ELF_H
53
+ +# include <elf.h>
54
+ +#endif
55
+ +
56
+ #include "posixtime.h"
57
+
58
+ #if defined (HAVE_SYS_RESOURCE_H) && !defined (RLIMTYPE)
59
+ @@ -4975,13 +4979,21 @@ shell_execve (command, args, env)
60
+ {
61
+ /* The file has the execute bits set, but the kernel refuses to
62
+ run it for some reason. See why. */
63
+ +#if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H)
64
+ + int fd = open (command, O_RDONLY);
65
+ +
66
+ + if (fd >= 0)
67
+ + sample_len = read (fd, sample, sizeof (sample));
68
+ + else
69
+ + sample_len = -1;
70
+ +#endif
71
+ #if defined (HAVE_HASH_BANG_EXEC)
72
+ - READ_SAMPLE_BUF (command, sample, sample_len);
73
+ if (sample_len > 2 && sample[0] == '#' && sample[1] == '!')
74
+ {
75
+ char *interp;
76
+ int ilen;
77
+
78
+ + close (fd);
79
+ interp = getinterp (sample, sample_len, (int *)NULL);
80
+ ilen = strlen (interp);
81
+ errno = i;
82
+ @@ -4997,6 +5009,136 @@ shell_execve (command, args, env)
83
+ return (EX_NOEXEC);
84
+ }
85
+ #endif
86
+ +#if defined (HAVE_ELF_H)
87
+ + if (i == ENOENT
88
+ + && sample_len > EI_NIDENT
89
+ + && memcmp (sample, ELFMAG, SELFMAG) == 0)
90
+ + {
91
+ + off_t offset = -1;
92
+ +
93
+ + /* It is an ELF file. Now determine whether it is dynamically
94
+ + linked and if yes, get the offset of the interpreter
95
+ + string. */
96
+ + if (sample[EI_CLASS] == ELFCLASS32
97
+ + && sample_len > sizeof (Elf32_Ehdr))
98
+ + {
99
+ + Elf32_Ehdr ehdr;
100
+ + Elf32_Phdr *phdr;
101
+ + int nphdr;
102
+ +
103
+ + /* We have to copy the data since the sample buffer
104
+ + might not be aligned correctly to be accessed as
105
+ + an Elf32_Ehdr struct. */
106
+ + memcpy (&ehdr, sample, sizeof (Elf32_Ehdr));
107
+ +
108
+ + nphdr = ehdr.e_phnum;
109
+ + phdr = (Elf32_Phdr *) malloc (nphdr * ehdr.e_phentsize);
110
+ + if (phdr != NULL)
111
+ + {
112
+ +#ifdef HAVE_PREAD
113
+ + sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize,
114
+ + ehdr.e_phoff);
115
+ +#else
116
+ + if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1)
117
+ + sample_len = read (fd, phdr,
118
+ + nphdr * ehdr.e_phentsize);
119
+ + else
120
+ + sample_len = -1;
121
+ +#endif
122
+ + if (sample_len == nphdr * ehdr.e_phentsize)
123
+ + while (nphdr-- > 0)
124
+ + if (phdr[nphdr].p_type == PT_INTERP)
125
+ + {
126
+ + offset = phdr[nphdr].p_offset;
127
+ + break;
128
+ + }
129
+ + free (phdr);
130
+ + }
131
+ + }
132
+ + else if (sample[EI_CLASS] == ELFCLASS64
133
+ + && sample_len > sizeof (Elf64_Ehdr))
134
+ + {
135
+ + Elf64_Ehdr ehdr;
136
+ + Elf64_Phdr *phdr;
137
+ + int nphdr;
138
+ +
139
+ + /* We have to copy the data since the sample buffer
140
+ + might not be aligned correctly to be accessed as
141
+ + an Elf64_Ehdr struct. */
142
+ + memcpy (&ehdr, sample, sizeof (Elf64_Ehdr));
143
+ +
144
+ + nphdr = ehdr.e_phnum;
145
+ + phdr = (Elf64_Phdr *) malloc (nphdr * ehdr.e_phentsize);
146
+ + if (phdr != NULL)
147
+ + {
148
+ +#ifdef HAVE_PREAD
149
+ + sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize,
150
+ + ehdr.e_phoff);
151
+ +#else
152
+ + if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1)
153
+ + sample_len = read (fd, phdr,
154
+ + nphdr * ehdr.e_phentsize);
155
+ + else
156
+ + sample_len = -1;
157
+ +#endif
158
+ + if (sample_len == nphdr * ehdr.e_phentsize)
159
+ + while (nphdr-- > 0)
160
+ + if (phdr[nphdr].p_type == PT_INTERP)
161
+ + {
162
+ + offset = phdr[nphdr].p_offset;
163
+ + break;
164
+ + }
165
+ + free (phdr);
166
+ + }
167
+ + }
168
+ +
169
+ + if (offset != -1)
170
+ + {
171
+ + size_t maxlen = 0;
172
+ + size_t actlen = 0;
173
+ + char *interp = NULL;
174
+ +
175
+ + do
176
+ + {
177
+ + if (actlen == maxlen)
178
+ + {
179
+ + char *newinterp = realloc (interp, maxlen += 200);
180
+ + if (newinterp == NULL)
181
+ + {
182
+ + actlen = 0;
183
+ + break;
184
+ + }
185
+ + interp = newinterp;
186
+ +
187
+ +#ifdef HAVE_PREAD
188
+ + actlen = pread (fd, interp, maxlen, offset);
189
+ +#else
190
+ + if (lseek (fd, offset, SEEK_SET) != -1)
191
+ + actlen = read (fd, interp, maxlen);
192
+ + else
193
+ + actlen = -1;
194
+ +#endif
195
+ + }
196
+ + }
197
+ + while (actlen > 0 && memchr (interp, '\0', actlen) == NULL);
198
+ +
199
+ + if (actlen > 0)
200
+ + {
201
+ + close (fd);
202
+ + errno = i;
203
+ + sys_error ("%s: %s: bad ELF interpreter", command,
204
+ + interp);
205
+ + free (interp);
206
+ + return (EX_NOEXEC);
207
+ + }
208
+ +
209
+ + free (interp);
210
+ + }
211
+ + }
212
+ +#endif
213
+ +#if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H)
214
+ + close (fd);
215
+ +#endif
216
+ errno = i;
217
+ file_error (command);
218
+ }
SOURCES/bash-2.05b-debuginfo.patch ADDED
@@ -0,0 +1,10 @@
1
+ --- bash-2.05b/builtins/Makefile.in.debuginfo 2003-03-25 17:25:21.000000000 +0000
2
+ +++ bash-2.05b/builtins/Makefile.in 2003-03-25 17:25:49.000000000 +0000
3
+ @@ -93,7 +93,6 @@
4
+ $(RM) $@
5
+ ./$(MKBUILTINS) $(DIRECTDEFINE) $<
6
+ $(CC) -c $(CCFLAGS) $*.c || ( $(RM) $*.c ; exit 1 )
7
+ - $(RM) $*.c
8
+
9
+ # How to make a .c file from a .def file.
10
+ .def.c:
SOURCES/bash-2.05b-manso.patch ADDED
@@ -0,0 +1,10 @@
1
+ --- bash-2.05b/doc/builtins.1.manso 2003-02-10 18:58:21.000000000 +0000
2
+ +++ bash-2.05b/doc/builtins.1 2003-02-10 18:58:28.000000000 +0000
3
+ @@ -10,6 +10,6 @@
4
+ ulimit, umask, unalias, unset, wait \- bash built-in commands, see \fBbash\fR(1)
5
+ .SH BASH BUILTIN COMMANDS
6
+ .nr zZ 1
7
+ -.so bash.1
8
+ +.so man1/bash.1
9
+ .SH SEE ALSO
10
+ bash(1), sh(1)
SOURCES/bash-2.05b-pgrp_sync.patch ADDED
@@ -0,0 +1,11 @@
1
+ --- bash-2.05b/aclocal.m4.pgrp_sync 2002-06-25 14:45:43.000000000 +0100
2
+ +++ bash-2.05b/aclocal.m4 2003-01-15 18:17:35.000000000 +0000
3
+ @@ -1255,7 +1255,7 @@
4
+ wait(&status);
5
+ exit(ok ? 0 : 5);
6
+ }
7
+ -], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
8
+ +], bash_cv_pgrp_pipe=yes,bash_cv_pgrp_pipe=yes,
9
+ [AC_MSG_WARN(cannot check pgrp synchronization if cross compiling -- defaulting to no)
10
+ bash_cv_pgrp_pipe=no])
11
+ ])
SOURCES/bash-2.05b-readline-oom.patch ADDED
@@ -0,0 +1,11 @@
1
+ --- bash-2.05b/lib/readline/readline.c.oom 2002-03-13 23:10:46.000000000 +0100
2
+ +++ bash-2.05b/lib/readline/readline.c 2002-08-07 12:02:04.000000000 +0200
3
+ @@ -567,7 +567,7 @@
4
+ {
5
+ /* Special case rl_do_lowercase_version (). */
6
+ if (func == rl_do_lowercase_version)
7
+ - return (_rl_dispatch (_rl_to_lower (key), map));
8
+ + return (_rl_dispatch (_rl_to_lower ((unsigned char)key), map));
9
+
10
+ rl_executing_keymap = map;
11
+
SOURCES/bash-2.05b-xcc.patch ADDED
@@ -0,0 +1,19 @@
1
+ --- bash-3.1/Makefile.in.xcc 2005-10-25 19:37:52.000000000 +0100
2
+ +++ bash-3.1/Makefile.in 2005-12-23 16:11:09.000000000 +0000
3
+ @@ -68,6 +68,7 @@
4
+ ARFLAGS = @ARFLAGS@
5
+ RANLIB = @RANLIB@
6
+ SIZE = @SIZE@
7
+ +STRIP = strip
8
+
9
+ INSTALL = @INSTALL@
10
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
11
+ @@ -535,7 +536,7 @@
12
+ @chmod a+rx bashbug
13
+
14
+ strip: $(Program) .made
15
+ - strip $(Program)
16
+ + $(STRIP) $(Program)
17
+ ls -l $(Program)
18
+ -$(SIZE) $(Program)
19
+
SOURCES/bash-3.2-audit.patch ADDED
@@ -0,0 +1,108 @@
1
+ diff -up bash-4.2/config.h.in.audit bash-4.2/config.h.in
2
+ --- bash-4.2/config.h.in.audit 2013-01-31 16:26:16.857698992 +0100
3
+ +++ bash-4.2/config.h.in 2013-01-31 16:26:16.876699255 +0100
4
+ @@ -1131,6 +1131,14 @@
5
+
6
+ /* End additions for lib/intl */
7
+
8
+ +
9
+ +/* Additions for lib/readline */
10
+ +
11
+ +/* Define if you have <linux/audit.h> and it defines AUDIT_USER_TTY */
12
+ +#undef HAVE_DECL_AUDIT_USER_TTY
13
+ +
14
+ +/* End additions for lib/readline */
15
+ +
16
+ #include "config-bot.h"
17
+
18
+ #endif /* _CONFIG_H_ */
19
+ diff -up bash-4.2/configure.in.audit bash-4.2/configure.in
20
+ --- bash-4.2/configure.in.audit 2013-01-31 16:26:16.858699005 +0100
21
+ +++ bash-4.2/configure.in 2013-01-31 16:26:16.877699269 +0100
22
+ @@ -888,6 +888,8 @@ BASH_FUNC_DUP2_CLOEXEC_CHECK
23
+ BASH_SYS_PGRP_SYNC
24
+ BASH_SYS_SIGNAL_VINTAGE
25
+
26
+ +AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
27
+ +
28
+ dnl checking for the presence of certain library symbols
29
+ BASH_SYS_ERRLIST
30
+ BASH_SYS_SIGLIST
31
+ diff -up bash-4.2/lib/readline/readline.c.audit bash-4.2/lib/readline/readline.c
32
+ --- bash-4.2/lib/readline/readline.c.audit 2013-01-31 16:26:16.871699185 +0100
33
+ +++ bash-4.2/lib/readline/readline.c 2013-01-31 17:24:23.902744860 +0100
34
+ @@ -55,6 +55,12 @@
35
+ extern int errno;
36
+ #endif /* !errno */
37
+
38
+ +#if defined (HAVE_DECL_AUDIT_USER_TTY)
39
+ +# include <sys/socket.h>
40
+ +# include <linux/audit.h>
41
+ +# include <linux/netlink.h>
42
+ +#endif
43
+ +
44
+ /* System-specific feature definitions and include files. */
45
+ #include "rldefs.h"
46
+ #include "rlmbutil.h"
47
+ @@ -301,7 +307,48 @@ rl_set_prompt (prompt)
48
+ rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
49
+ return 0;
50
+ }
51
+ -
52
+ +
53
+ +#if defined (HAVE_DECL_AUDIT_USER_TTY)
54
+ +/* Report STRING to the audit system. */
55
+ +static void
56
+ +audit_tty (char *string)
57
+ +{
58
+ + struct sockaddr_nl addr;
59
+ + struct msghdr msg;
60
+ + struct nlmsghdr nlm;
61
+ + struct iovec iov[2];
62
+ + size_t size;
63
+ + int fd;
64
+ +
65
+ + size = strlen (string) + 1;
66
+ + fd = socket (AF_NETLINK, SOCK_RAW, NETLINK_AUDIT);
67
+ + if (fd < 0)
68
+ + return;
69
+ + nlm.nlmsg_len = NLMSG_LENGTH (size);
70
+ + nlm.nlmsg_type = AUDIT_USER_TTY;
71
+ + nlm.nlmsg_flags = NLM_F_REQUEST;
72
+ + nlm.nlmsg_seq = 0;
73
+ + nlm.nlmsg_pid = 0;
74
+ + iov[0].iov_base = &nlm;
75
+ + iov[0].iov_len = sizeof (nlm);
76
+ + iov[1].iov_base = string;
77
+ + iov[1].iov_len = size;
78
+ + addr.nl_family = AF_NETLINK;
79
+ + addr.nl_pad = 0;
80
+ + addr.nl_pid = 0;
81
+ + addr.nl_groups = 0;
82
+ + msg.msg_name = &addr;
83
+ + msg.msg_namelen = sizeof (addr);
84
+ + msg.msg_iov = iov;
85
+ + msg.msg_iovlen = 2;
86
+ + msg.msg_control = NULL;
87
+ + msg.msg_controllen = 0;
88
+ + msg.msg_flags = 0;
89
+ + (void)sendmsg (fd, &msg, 0);
90
+ + close (fd);
91
+ +}
92
+ +#endif
93
+ +
94
+ /* Read a line of input. Prompt with PROMPT. An empty PROMPT means
95
+ none. A return value of NULL means that EOF was encountered. */
96
+ char *
97
+ @@ -352,6 +399,11 @@ readline (prompt)
98
+ RL_SETSTATE (RL_STATE_CALLBACK);
99
+ #endif
100
+
101
+ +#if defined (HAVE_DECL_AUDIT_USER_TTY)
102
+ + if (value != NULL)
103
+ + audit_tty (value);
104
+ +#endif
105
+ +
106
+ return (value);
107
+ }
108
+
SOURCES/bash-3.2-ssh_source_bash.patch ADDED
@@ -0,0 +1,12 @@
1
+ diff -up bash-4.0/config-top.h.ssh_source_bash bash-4.0/config-top.h
2
+ --- bash-4.0/config-top.h.ssh_source_bash 2009-01-21 15:20:06.000000000 +0100
3
+ +++ bash-4.0/config-top.h 2009-01-21 15:25:46.000000000 +0100
4
+ @@ -90,7 +90,7 @@
5
+ sshd and source the .bashrc if so (like the rshd behavior). This checks
6
+ for the presence of SSH_CLIENT or SSH2_CLIENT in the initial environment,
7
+ which can be fooled under certain not-uncommon circumstances. */
8
+ -/* #define SSH_SOURCE_BASHRC */
9
+ +#define SSH_SOURCE_BASHRC
10
+
11
+ /* Define if you want the case-capitalizing operators (~[~]) and the
12
+ `capcase' variable attribute (declare -c). */
SOURCES/bash-4.0-nobits.patch ADDED
@@ -0,0 +1,154 @@
1
+ diff -up bash-4.0/execute_cmd.c.nobits bash-4.0/execute_cmd.c
2
+ --- bash-4.0/execute_cmd.c.nobits 2009-08-11 11:53:38.000000000 +0200
3
+ +++ bash-4.0/execute_cmd.c 2009-08-14 16:18:18.000000000 +0200
4
+ @@ -4747,6 +4747,7 @@ shell_execve (command, args, env)
5
+ && memcmp (sample, ELFMAG, SELFMAG) == 0)
6
+ {
7
+ off_t offset = -1;
8
+ + int dynamic_nobits = 0;
9
+
10
+ /* It is an ELF file. Now determine whether it is dynamically
11
+ linked and if yes, get the offset of the interpreter
12
+ @@ -4756,13 +4757,61 @@ shell_execve (command, args, env)
13
+ {
14
+ Elf32_Ehdr ehdr;
15
+ Elf32_Phdr *phdr;
16
+ - int nphdr;
17
+ + Elf32_Shdr *shdr;
18
+ + int nphdr, nshdr;
19
+
20
+ /* We have to copy the data since the sample buffer
21
+ might not be aligned correctly to be accessed as
22
+ an Elf32_Ehdr struct. */
23
+ memcpy (&ehdr, sample, sizeof (Elf32_Ehdr));
24
+
25
+ + nshdr = ehdr.e_shnum;
26
+ + shdr = (Elf32_Shdr *) malloc (nshdr * ehdr.e_shentsize);
27
+ +
28
+ + if (shdr != NULL)
29
+ + {
30
+ +#ifdef HAVE_PREAD
31
+ + sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize,
32
+ + ehdr.e_shoff);
33
+ +#else
34
+ + if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1)
35
+ + sample_len = read (fd, shdr,
36
+ + nshdr * ehdr.e_shentsize);
37
+ + else
38
+ + sample_len = -1;
39
+ +#endif
40
+ + if (sample_len == nshdr * ehdr.e_shentsize)
41
+ + {
42
+ + char *strings = (char *) malloc (shdr[ehdr.e_shstrndx].sh_size);
43
+ + if (strings != NULL)
44
+ + {
45
+ +#ifdef HAVE_PREAD
46
+ + sample_len = pread (fd, strings,
47
+ + shdr[ehdr.e_shstrndx].sh_size,
48
+ + shdr[ehdr.e_shstrndx].sh_offset);
49
+ +#else
50
+ + if (lseek (fd, shdr[ehdr.e_shstrndx].sh_offset,
51
+ + SEEK_SET) != -1)
52
+ + sample_len = read (fd, strings,
53
+ + shdr[ehdr.e_shstrndx].sh_size);
54
+ + else
55
+ + sample_len = -1;
56
+ +#endif
57
+ + if (sample_len == shdr[ehdr.e_shstrndx].sh_size)
58
+ + while (nshdr-- > 0)
59
+ + if (strcmp (strings + shdr[nshdr].sh_name,
60
+ + ".interp") == 0 &&
61
+ + shdr[nshdr].sh_type == SHT_NOBITS)
62
+ + {
63
+ + dynamic_nobits++;
64
+ + break;
65
+ + }
66
+ + free (strings);
67
+ + }
68
+ + }
69
+ + free (shdr);
70
+ + }
71
+ +
72
+ nphdr = ehdr.e_phnum;
73
+ phdr = (Elf32_Phdr *) malloc (nphdr * ehdr.e_phentsize);
74
+ if (phdr != NULL)
75
+ @@ -4792,13 +4841,60 @@ shell_execve (command, args, env)
76
+ {
77
+ Elf64_Ehdr ehdr;
78
+ Elf64_Phdr *phdr;
79
+ - int nphdr;
80
+ + Elf64_Shdr *shdr;
81
+ + int nphdr, nshdr;
82
+
83
+ /* We have to copy the data since the sample buffer
84
+ might not be aligned correctly to be accessed as
85
+ an Elf64_Ehdr struct. */
86
+ memcpy (&ehdr, sample, sizeof (Elf64_Ehdr));
87
+
88
+ + nshdr = ehdr.e_shnum;
89
+ + shdr = (Elf64_Shdr *) malloc (nshdr * ehdr.e_shentsize);
90
+ + if (shdr != NULL)
91
+ + {
92
+ +#ifdef HAVE_PREAD
93
+ + sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize,
94
+ + ehdr.e_shoff);
95
+ +#else
96
+ + if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1)
97
+ + sample_len = read (fd, shdr,
98
+ + nshdr * ehdr.e_shentsize);
99
+ + else
100
+ + sample_len = -1;
101
+ +#endif
102
+ + if (sample_len == nshdr * ehdr.e_shentsize)
103
+ + {
104
+ + char *strings = (char *) malloc (shdr[ehdr.e_shstrndx].sh_size);
105
+ + if (strings != NULL)
106
+ + {
107
+ +#ifdef HAVE_PREAD
108
+ + sample_len = pread (fd, strings,
109
+ + shdr[ehdr.e_shstrndx].sh_size,
110
+ + shdr[ehdr.e_shstrndx].sh_offset);
111
+ +#else
112
+ + if (lseek (fd, shdr[ehdr.e_shstrndx].sh_offset,
113
+ + SEEK_SET) != -1)
114
+ + sample_len = read (fd, strings,
115
+ + shdr[ehdr.e_shstrndx].sh_size);
116
+ + else
117
+ + sample_len = -1;
118
+ +#endif
119
+ + if (sample_len == shdr[ehdr.e_shstrndx].sh_size)
120
+ + while (nshdr-- > 0)
121
+ + if (strcmp (strings + shdr[nshdr].sh_name,
122
+ + ".interp") == 0 &&
123
+ + shdr[nshdr].sh_type == SHT_NOBITS)
124
+ + {
125
+ + dynamic_nobits++;
126
+ + break;
127
+ + }
128
+ + free (strings);
129
+ + }
130
+ + }
131
+ + free (shdr);
132
+ + }
133
+ +
134
+ nphdr = ehdr.e_phnum;
135
+ phdr = (Elf64_Phdr *) malloc (nphdr * ehdr.e_phentsize);
136
+ if (phdr != NULL)
137
+ @@ -4858,8 +4954,15 @@ shell_execve (command, args, env)
138
+ {
139
+ close (fd);
140
+ errno = i;
141
+ - sys_error ("%s: %s: bad ELF interpreter", command,
142
+ - interp);
143
+ + if (dynamic_nobits > 0)
144
+ + {
145
+ + sys_error ("%s: bad ELF interpreter", command);
146
+ + }
147
+ + else
148
+ + {
149
+ + sys_error ("%s: %s: bad ELF interpreter", command,
150
+ + interp);
151
+ + }
152
+ free (interp);
153
+ return (EX_NOEXEC);
154
+ }
SOURCES/bash-4.1-broken_pipe.patch ADDED
@@ -0,0 +1,12 @@
1
+ diff -up bash-4.1/config-top.h.broken_pipe bash-4.1/config-top.h
2
+ --- bash-4.1/config-top.h.broken_pipe 2011-01-06 18:01:30.000000000 +0100
3
+ +++ bash-4.1/config-top.h 2011-01-06 18:02:14.000000000 +0100
4
+ @@ -51,7 +51,7 @@
5
+ /* Define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS if you don't want builtins
6
+ like `echo' and `printf' to report errors when output does not succeed
7
+ due to EPIPE. */
8
+ -/* #define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS */
9
+ +#define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS
10
+
11
+ /* The default value of the PATH variable. */
12
+ #ifndef DEFAULT_PATH_VALUE
SOURCES/bash-4.1-defer-sigchld-trap.patch ADDED
@@ -0,0 +1,30 @@
1
+ diff -pruN bash-4.1/jobs.c bash-4.1.patched/jobs.c
2
+ --- bash-4.1/jobs.c 2009-11-30 03:42:05.000000000 +0530
3
+ +++ bash-4.1.patched/jobs.c 2012-03-06 16:44:15.706595703 +0530
4
+ @@ -3037,6 +3037,7 @@ waitchld (wpid, block)
5
+ PROCESS *child;
6
+ pid_t pid;
7
+ int call_set_current, last_stopped_job, job, children_exited, waitpid_flags;
8
+ + int called_from_sighand = sigchld;
9
+ static int wcontinued = WCONTINUED; /* run-time fix for glibc problem */
10
+
11
+ call_set_current = children_exited = 0;
12
+ @@ -3161,7 +3162,17 @@ waitchld (wpid, block)
13
+ longjmp (wait_intr_buf, 1);
14
+ }
15
+
16
+ - run_sigchld_trap (children_exited);
17
+ + /* Queue up the trap handler if we're called directly from within the
18
+ + signal handler. */
19
+ + if (called_from_sighand)
20
+ + {
21
+ + int i = children_exited;
22
+ + interrupt_immediately = 0;
23
+ + while (i--)
24
+ + trap_handler (SIGCHLD);
25
+ + }
26
+ + else
27
+ + run_sigchld_trap (children_exited);
28
+ }
29
+
30
+ /* We have successfully recorded the useful information about this process
SOURCES/bash-4.1-examples.patch ADDED
@@ -0,0 +1,24 @@
1
+ diff -up bash-4.1/examples/loadables/Makefile.in.examples bash-4.1/examples/loadables/Makefile.in
2
+ --- bash-4.1/examples/loadables/Makefile.in.examples 2010-06-22 16:20:02.000000000 +0200
3
+ +++ bash-4.1/examples/loadables/Makefile.in 2010-06-22 16:20:41.000000000 +0200
4
+ @@ -43,7 +43,7 @@ host_os = @host_os@
5
+ host_cpu = @host_cpu@
6
+ host_vendor = @host_vendor@
7
+
8
+ -CFLAGS = @CFLAGS@
9
+ +CFLAGS = -O2 -g
10
+ LOCAL_CFLAGS = @LOCAL_CFLAGS@
11
+ DEFS = @DEFS@
12
+ LOCAL_DEFS = @LOCAL_DEFS@
13
+ diff -up bash-4.1/examples/loadables/perl/Makefile.in.examples bash-4.1/examples/loadables/perl/Makefile.in
14
+ --- bash-4.1/examples/loadables/perl/Makefile.in.examples 2010-06-22 16:20:46.000000000 +0200
15
+ +++ bash-4.1/examples/loadables/perl/Makefile.in 2010-06-22 16:21:04.000000000 +0200
16
+ @@ -42,7 +42,7 @@ SHELL = @MAKE_SHELL@
17
+
18
+ PERL5 = perl5
19
+
20
+ -CFLAGS = @CFLAGS@
21
+ +CFLAGS = -O2 -g
22
+
23
+ #
24
+ # These values are generated for configure by ${topdir}/support/shobj-conf.
SOURCES/bash-4.1-trap.patch ADDED
@@ -0,0 +1,46 @@
1
+ Only in bash-4.1: _patchlevel
2
+ diff -rup bash-4.1.orig/trap.c bash-4.1/trap.c
3
+ --- bash-4.1.orig/trap.c 2013-05-14 13:58:06.224000564 +0900
4
+ +++ bash-4.1/trap.c 2013-06-26 16:59:42.968001502 +0900
5
+ @@ -269,6 +269,9 @@ run_pending_traps ()
6
+ if (catch_flag == 0) /* simple optimization */
7
+ return;
8
+
9
+ + if (running_trap > 0)
10
+ + return; /* no recursive trap invocations */
11
+ +
12
+ catch_flag = 0;
13
+
14
+ /* Preserve $? when running trap. */
15
+ @@ -294,6 +297,8 @@ run_pending_traps ()
16
+ # endif
17
+ #endif /* HAVE_POSIX_SIGNALS */
18
+
19
+ + running_trap = sig + 1;
20
+ +
21
+ if (sig == SIGINT)
22
+ {
23
+ run_interrupt_trap ();
24
+ @@ -338,7 +343,14 @@ run_pending_traps ()
25
+ save_subst_varlist = subst_assign_varlist;
26
+ subst_assign_varlist = 0;
27
+
28
+ +#if defined (JOB_CONTROL)
29
+ + save_pipeline (1); /* XXX only provides one save level */
30
+ +#endif
31
+ parse_and_execute (savestring (trap_list[sig]), "trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE);
32
+ +#if defined (JOB_CONTROL)
33
+ + restore_pipeline (1);
34
+ +#endif
35
+ +
36
+ restore_token_state (token_state);
37
+ free (token_state);
38
+
39
+ @@ -346,6 +358,7 @@ run_pending_traps ()
40
+ }
41
+
42
+ pending_traps[sig] = 0;
43
+ + running_trap = 0;
44
+
45
+ #if defined (HAVE_POSIX_SIGNALS)
46
+ sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL);
SOURCES/bash-4.2-brace-expand.patch ADDED
@@ -0,0 +1,24 @@
1
+ diff --git a/braces.c b/braces.c
2
+ index 2febed7..61c1ab1 100644
3
+ --- a/braces.c
4
+ +++ b/braces.c
5
+ @@ -529,6 +529,11 @@ brace_gobbler (text, tlen, indx, satisfy)
6
+ {
7
+ if (c == quoted)
8
+ quoted = 0;
9
+ +#if defined (SHELL)
10
+ + /* The shell allows quoted command substitutions */
11
+ + if (quoted == '"' && c == '$' && text[i+1] == '(') /*)*/
12
+ + goto comsub;
13
+ +#endif
14
+ ADVANCE_CHAR (text, tlen, i);
15
+ continue;
16
+ }
17
+ @@ -551,6 +556,7 @@ brace_gobbler (text, tlen, indx, satisfy)
18
+ /* Pass new-style command and process substitutions through unchanged. */
19
+ if ((c == '$' || c == '<' || c == '>') && text[i+1] == '(') /* ) */
20
+ {
21
+ +comsub:
22
+ si = i + 2;
23
+ t = extract_command_subst (text, &si, 0);
24
+ i = si;
SOURCES/bash-4.2-case-in-command-subst.patch ADDED
@@ -0,0 +1,21 @@
1
+ diff -up bash-4.2/parse.y.old bash-4.2/parse.y
2
+ --- bash-4.2/parse.y.old 2015-05-18 13:04:30.341494305 +0200
3
+ +++ bash-4.2/parse.y 2015-05-18 13:05:18.245509202 +0200
4
+ @@ -3693,6 +3693,17 @@ eof_error:
5
+ }
6
+ else if MBTEST((tflags & LEX_CKCOMMENT) && ch == '#' && (lex_rwlen == 0 || ((tflags & LEX_INWORD) && lex_wlen == 0)))
7
+ ; /* don't modify LEX_RESWDOK if we're starting a comment */
8
+ + /* Allow `do' followed by space, tab, or newline to preserve the
9
+ + RESWDOK flag, but reset the reserved word length counter so we
10
+ + can read another one. */
11
+ + else if MBTEST(((tflags & LEX_INCASE) == 0) &&
12
+ + (isblank(ch) || ch == '\n') &&
13
+ + lex_rwlen == 2 &&
14
+ + STREQN (ret + retind - 2, "do", 2))
15
+ +{
16
+ +/*itrace("parse_comsub:%d: lex_incase == 1 found `%c', found \"do\"", line_number, ch);*/
17
+ + lex_rwlen = 0;
18
+ +}
19
+ else if MBTEST((tflags & LEX_INCASE) && ch != '\n')
20
+ /* If we can read a reserved word and we're in case, we're at the
21
+ point where we can read a new pattern list or an esac. We
SOURCES/bash-4.2-check-debugger.patch ADDED
@@ -0,0 +1,87 @@
1
+ diff -up bash-4.2/builtins/evalfile.c.old bash-4.2/builtins/evalfile.c
2
+ --- bash-4.2/builtins/evalfile.c.old 2015-05-14 20:45:31.402793505 +0200
3
+ +++ bash-4.2/builtins/evalfile.c 2015-05-14 20:45:47.632794791 +0200
4
+ @@ -317,6 +317,23 @@ maybe_execute_file (fname, force_noninte
5
+ return result;
6
+ }
7
+
8
+ +int
9
+ +force_execute_file (fname, force_noninteractive)
10
+ + const char *fname;
11
+ + int force_noninteractive;
12
+ +{
13
+ + char *filename;
14
+ + int result, flags;
15
+ +
16
+ + filename = bash_tilde_expand (fname, 0);
17
+ + flags = 0;
18
+ + if (force_noninteractive)
19
+ + flags |= FEVAL_NONINT;
20
+ + result = _evalfile (filename, flags);
21
+ + free (filename);
22
+ + return result;
23
+ +}
24
+ +
25
+ #if defined (HISTORY)
26
+ int
27
+ fc_execute_file (filename)
28
+ diff -up bash-4.2/configure.in.old bash-4.2/configure.in
29
+ --- bash-4.2/configure.in.old 2015-05-14 21:27:20.882449456 +0200
30
+ +++ bash-4.2/configure.in 2015-05-14 21:19:25.654612738 +0200
31
+ @@ -149,7 +149,7 @@ fi
32
+ fi
33
+
34
+ if test -z "${DEBUGGER_START_FILE}"; then
35
+ - DEBUGGER_START_FILE='${datadir}/bashdb/bashdb-main.inc'
36
+ + DEBUGGER_START_FILE='/usr/share/bashdb/bashdb-main.inc'
37
+ fi
38
+
39
+ dnl optional shell features in config.h.in
40
+ diff -up bash-4.2/shell.c.old bash-4.2/shell.c
41
+ --- bash-4.2/shell.c.old 2015-05-14 20:42:54.379781066 +0200
42
+ +++ bash-4.2/shell.c 2015-05-14 20:43:04.966781904 +0200
43
+ @@ -1373,12 +1373,19 @@ start_debugger ()
44
+ {
45
+ #if defined (DEBUGGER) && defined (DEBUGGER_START_FILE)
46
+ int old_errexit;
47
+ + int r;
48
+
49
+ old_errexit = exit_immediately_on_error;
50
+ exit_immediately_on_error = 0;
51
+
52
+ - maybe_execute_file (DEBUGGER_START_FILE, 1);
53
+ - function_trace_mode = 1;
54
+ + r = force_execute_file (DEBUGGER_START_FILE, 1);
55
+ + if (r < 0)
56
+ + {
57
+ + internal_warning ("cannot start debugger; debugging mode disabled");
58
+ + debugging_mode = function_trace_mode = 0;
59
+ + }
60
+ + else
61
+ + function_trace_mode = 1;
62
+
63
+ exit_immediately_on_error += old_errexit;
64
+ #endif
65
+ diff -up bash-4.2/builtins/evalfile.c.old bash-4.2/builtins/evalfile.c
66
+ --- bash-4.2/builtins/evalfile.c.old 2015-05-15 00:52:01.357266353 +0200
67
+ +++ bash-4.2/builtins/evalfile.c 2015-05-15 00:52:08.734263236 +0200
68
+ @@ -125,7 +125,7 @@ file_error_and_exit:
69
+ }
70
+
71
+ return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE
72
+ - : ((errno == ENOENT) ? 0 : -1));
73
+ + : ((errno == ENOENT && (flags & FEVAL_ENOENTOK) != 0) ? 0 : -1));
74
+ }
75
+
76
+ errfunc = ((flags & FEVAL_BUILTIN) ? builtin_error : internal_error);
77
+ diff -up bash-4.2/builtins/common.h.old bash-4.2/builtins/common.h
78
+ --- bash-4.2/builtins/common.h.old 2015-05-15 00:52:01.357266353 +0200
79
+ +++ bash-4.2/builtins/common.h 2015-05-15 00:52:08.734263236 +0200
80
+ @@ -170,6 +170,7 @@
81
+
82
+ /* Functions from evalfile.c */
83
+ extern int maybe_execute_file __P((const char *, int));
84
+ +extern int force_execute_file __P((const char *, int));
85
+ extern int source_file __P((const char *, int));
86
+ extern int fc_execute_file __P((const char *));
87
+
SOURCES/bash-4.2-coverity.patch ADDED
@@ -0,0 +1,99 @@
1
+ diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c
2
+ --- bash-4.2/execute_cmd.c.coverity 2011-02-24 13:04:35.000000000 +0100
3
+ +++ bash-4.2/execute_cmd.c 2011-02-24 13:49:13.000000000 +0100
4
+ @@ -5036,7 +5036,7 @@ shell_execve (command, args, env)
5
+ Elf32_Ehdr ehdr;
6
+ Elf32_Phdr *phdr;
7
+ Elf32_Shdr *shdr;
8
+ - int nphdr, nshdr;
9
+ + Elf32_Half nphdr, nshdr;
10
+
11
+ /* We have to copy the data since the sample buffer
12
+ might not be aligned correctly to be accessed as
13
+ @@ -5044,12 +5044,12 @@ shell_execve (command, args, env)
14
+ memcpy (&ehdr, sample, sizeof (Elf32_Ehdr));
15
+
16
+ nshdr = ehdr.e_shnum;
17
+ - shdr = (Elf32_Shdr *) malloc (nshdr * ehdr.e_shentsize);
18
+ + shdr = (Elf32_Shdr *) malloc ((size_t)nshdr * (size_t)ehdr.e_shentsize);
19
+
20
+ if (shdr != NULL)
21
+ {
22
+ #ifdef HAVE_PREAD
23
+ - sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize,
24
+ + sample_len = pread (fd, shdr, (size_t)nshdr * (size_t)ehdr.e_shentsize,
25
+ ehdr.e_shoff);
26
+ #else
27
+ if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1)
28
+ @@ -5091,11 +5091,11 @@ shell_execve (command, args, env)
29
+ }
30
+
31
+ nphdr = ehdr.e_phnum;
32
+ - phdr = (Elf32_Phdr *) malloc (nphdr * ehdr.e_phentsize);
33
+ + phdr = (Elf32_Phdr *) malloc ((size_t)nphdr * (size_t)ehdr.e_phentsize);
34
+ if (phdr != NULL)
35
+ {
36
+ #ifdef HAVE_PREAD
37
+ - sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize,
38
+ + sample_len = pread (fd, phdr, (size_t)nphdr * (size_t)ehdr.e_phentsize,
39
+ ehdr.e_phoff);
40
+ #else
41
+ if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1)
42
+ @@ -5120,7 +5120,7 @@ shell_execve (command, args, env)
43
+ Elf64_Ehdr ehdr;
44
+ Elf64_Phdr *phdr;
45
+ Elf64_Shdr *shdr;
46
+ - int nphdr, nshdr;
47
+ + Elf32_Half nphdr, nshdr;
48
+
49
+ /* We have to copy the data since the sample buffer
50
+ might not be aligned correctly to be accessed as
51
+ @@ -5128,11 +5128,11 @@ shell_execve (command, args, env)
52
+ memcpy (&ehdr, sample, sizeof (Elf64_Ehdr));
53
+
54
+ nshdr = ehdr.e_shnum;
55
+ - shdr = (Elf64_Shdr *) malloc (nshdr * ehdr.e_shentsize);
56
+ + shdr = (Elf64_Shdr *) malloc ((size_t)nshdr * (size_t)ehdr.e_shentsize);
57
+ if (shdr != NULL)
58
+ {
59
+ #ifdef HAVE_PREAD
60
+ - sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize,
61
+ + sample_len = pread (fd, shdr, (size_t)nshdr * (size_t)ehdr.e_shentsize,
62
+ ehdr.e_shoff);
63
+ #else
64
+ if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1)
65
+ @@ -5174,11 +5174,11 @@ shell_execve (command, args, env)
66
+ }
67
+
68
+ nphdr = ehdr.e_phnum;
69
+ - phdr = (Elf64_Phdr *) malloc (nphdr * ehdr.e_phentsize);
70
+ + phdr = (Elf64_Phdr *) malloc ((size_t)nphdr * (size_t)ehdr.e_phentsize);
71
+ if (phdr != NULL)
72
+ {
73
+ #ifdef HAVE_PREAD
74
+ - sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize,
75
+ + sample_len = pread (fd, phdr, (size_t)nphdr * (size_t)ehdr.e_phentsize,
76
+ ehdr.e_phoff);
77
+ #else
78
+ if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1)
79
+ @@ -5200,8 +5200,8 @@ shell_execve (command, args, env)
80
+
81
+ if (offset != -1)
82
+ {
83
+ - size_t maxlen = 0;
84
+ - size_t actlen = 0;
85
+ + ssize_t maxlen = 0;
86
+ + ssize_t actlen = 0;
87
+ char *interp = NULL;
88
+
89
+ do
90
+ @@ -5250,7 +5250,8 @@ shell_execve (command, args, env)
91
+ }
92
+ #endif
93
+ #if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H)
94
+ - close (fd);
95
+ + if (fd >= 0)
96
+ + close (fd);
97
+ #endif
98
+ errno = i;
99
+ file_error (command);
SOURCES/bash-4.2-cve-2014-7169-0.patch ADDED
@@ -0,0 +1,12 @@
1
+ *** ../bash-20140912/parse.y 2014-08-26 15:09:42.000000000 -0400
2
+ --- parse.y 2014-09-24 22:47:28.000000000 -0400
3
+ ***************
4
+ *** 2959,2962 ****
5
+ --- 2959,2964 ----
6
+ word_desc_to_read = (WORD_DESC *)NULL;
7
+
8
+ + eol_ungetc_lookahead = 0;
9
+ +
10
+ current_token = '\n'; /* XXX */
11
+ last_read_token = '\n';
12
+
SOURCES/bash-4.2-cve-2014-7169-1.patch ADDED
@@ -0,0 +1,147 @@
1
+ --- ../bash-4.2-orig/variables.c 2014-09-25 13:07:59.313209541 +0200
2
+ +++ variables.c 2014-09-25 13:15:29.869420719 +0200
3
+ @@ -268,7 +268,7 @@
4
+ static void propagate_temp_var __P((PTR_T));
5
+ static void dispose_temporary_env __P((sh_free_func_t *));
6
+
7
+ -static inline char *mk_env_string __P((const char *, const char *));
8
+ +static inline char *mk_env_string __P((const char *, const char *, int));
9
+ static char **make_env_array_from_var_list __P((SHELL_VAR **));
10
+ static char **make_var_export_array __P((VAR_CONTEXT *));
11
+ static char **make_func_export_array __P((void));
12
+ @@ -301,6 +301,14 @@
13
+ #endif
14
+ }
15
+
16
+ +/* Prefix and suffix for environment variable names which contain
17
+ + shell functions. */
18
+ +#define FUNCDEF_PREFIX "BASH_FUNC_"
19
+ +#define FUNCDEF_PREFIX_LEN (strlen (FUNCDEF_PREFIX))
20
+ +#define FUNCDEF_SUFFIX "()"
21
+ +#define FUNCDEF_SUFFIX_LEN (strlen (FUNCDEF_SUFFIX))
22
+ +
23
+ +
24
+ /* Initialize the shell variables from the current environment.
25
+ If PRIVMODE is nonzero, don't import functions from ENV or
26
+ parse $SHELLOPTS. */
27
+ @@ -338,28 +346,40 @@
28
+
29
+ /* If exported function, define it now. Don't import functions from
30
+ the environment in privileged mode. */
31
+ - if (privmode == 0 && read_but_dont_execute == 0 && STREQN ("() {", string, 4))
32
+ - {
33
+ - string_length = strlen (string);
34
+ - temp_string = (char *)xmalloc (3 + string_length + char_index);
35
+ + if (privmode == 0 && read_but_dont_execute == 0
36
+ + && STREQN (FUNCDEF_PREFIX, name, FUNCDEF_PREFIX_LEN)
37
+ + && STREQ (name + char_index - FUNCDEF_SUFFIX_LEN, FUNCDEF_SUFFIX)
38
+ + && STREQN ("() {", string, 4))
39
+ + {
40
+ + size_t name_length
41
+ + = char_index - (FUNCDEF_PREFIX_LEN + FUNCDEF_SUFFIX_LEN);
42
+ + char *temp_name = name + FUNCDEF_PREFIX_LEN;
43
+ + /* Temporarily remove the suffix. */
44
+ + temp_name[name_length] = '\0';
45
+
46
+ - strcpy (temp_string, name);
47
+ - temp_string[char_index] = ' ';
48
+ - strcpy (temp_string + char_index + 1, string);
49
+ + string_length = strlen (string);
50
+ + temp_string = (char *)xmalloc (name_length + 1 + string_length + 1);
51
+ + memcpy (temp_string, temp_name, name_length);
52
+ + temp_string[name_length] = ' ';
53
+ + memcpy (temp_string + name_length + 1, string, string_length + 1);
54
+
55
+ /* Don't import function names that are invalid identifiers from the
56
+ environment, though we still allow them to be defined as shell
57
+ variables. */
58
+ - if (legal_identifier (name))
59
+ - parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
60
+ + if (legal_identifier (temp_name))
61
+ + parse_and_execute (temp_string, temp_name,
62
+ + SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
63
+
64
+ - if (temp_var = find_function (name))
65
+ + if (temp_var = find_function (temp_name))
66
+ {
67
+ VSETATTR (temp_var, (att_exported|att_imported));
68
+ array_needs_making = 1;
69
+ }
70
+ else
71
+ report_error (_("error importing function definition for `%s'"), name);
72
+ +
73
+ + /* Restore the original suffix. */
74
+ + temp_name[name_length] = FUNCDEF_SUFFIX[0];
75
+ }
76
+ #if defined (ARRAY_VARS)
77
+ # if 0
78
+ @@ -2537,7 +2557,7 @@
79
+ var->context = variable_context; /* XXX */
80
+
81
+ INVALIDATE_EXPORTSTR (var);
82
+ - var->exportstr = mk_env_string (name, value);
83
+ + var->exportstr = mk_env_string (name, value, 0);
84
+
85
+ array_needs_making = 1;
86
+
87
+ @@ -3388,22 +3408,43 @@
88
+ /* */
89
+ /* **************************************************************** */
90
+
91
+ +/* Returns the string NAME=VALUE if !FUNCTIONP or if VALUE == NULL (in
92
+ + which case it is treated as empty). Otherwise, decorate NAME with
93
+ + FUNCDEF_PREFIX and FUNCDEF_SUFFIX, and return a string of the form
94
+ + FUNCDEF_PREFIX NAME FUNCDEF_SUFFIX = VALUE (without spaces). */
95
+ static inline char *
96
+ -mk_env_string (name, value)
97
+ +mk_env_string (name, value, functionp)
98
+ const char *name, *value;
99
+ + int functionp;
100
+ {
101
+ - int name_len, value_len;
102
+ - char *p;
103
+ + size_t name_len, value_len;
104
+ + char *p, *q;
105
+
106
+ name_len = strlen (name);
107
+ value_len = STRLEN (value);
108
+ - p = (char *)xmalloc (2 + name_len + value_len);
109
+ - strcpy (p, name);
110
+ - p[name_len] = '=';
111
+ + if (functionp && value != NULL)
112
+ + {
113
+ + p = (char *)xmalloc (FUNCDEF_PREFIX_LEN + name_len + FUNCDEF_SUFFIX_LEN
114
+ + + 1 + value_len + 1);
115
+ + q = p;
116
+ + memcpy (q, FUNCDEF_PREFIX, FUNCDEF_PREFIX_LEN);
117
+ + q += FUNCDEF_PREFIX_LEN;
118
+ + memcpy (q, name, name_len);
119
+ + q += name_len;
120
+ + memcpy (q, FUNCDEF_SUFFIX, FUNCDEF_SUFFIX_LEN);
121
+ + q += FUNCDEF_SUFFIX_LEN;
122
+ + }
123
+ + else
124
+ + {
125
+ + p = (char *)xmalloc (name_len + 1 + value_len + 1);
126
+ + memcpy (p, name, name_len);
127
+ + q = p + name_len;
128
+ + }
129
+ + q[0] = '=';
130
+ if (value && *value)
131
+ - strcpy (p + name_len + 1, value);
132
+ + memcpy (q + 1, value, value_len + 1);
133
+ else
134
+ - p[name_len + 1] = '\0';
135
+ + q[1] = '\0';
136
+ return (p);
137
+ }
138
+
139
+ @@ -3489,7 +3530,7 @@
140
+ /* Gee, I'd like to get away with not using savestring() if we're
141
+ using the cached exportstr... */
142
+ list[list_index] = USE_EXPORTSTR ? savestring (value)
143
+ - : mk_env_string (var->name, value);
144
+ + : mk_env_string (var->name, value, function_p (var));
145
+
146
+ if (USE_EXPORTSTR == 0)
147
+ SAVE_EXPORTSTR (var, list[list_index]);
SOURCES/bash-4.2-cve-2014-7169-2.patch ADDED
@@ -0,0 +1,83 @@
1
+ --- ../bash-4.2-orig/parse.y 2014-09-25 13:07:59.218209276 +0200
2
+ +++ parse.y 2014-09-25 15:26:52.813159810 +0200
3
+ @@ -264,9 +264,21 @@
4
+
5
+ /* Variables to manage the task of reading here documents, because we need to
6
+ defer the reading until after a complete command has been collected. */
7
+ -static REDIRECT *redir_stack[10];
8
+ +static REDIRECT **redir_stack;
9
+ int need_here_doc;
10
+
11
+ +/* Pushes REDIR onto redir_stack, resizing it as needed. */
12
+ +static void
13
+ +push_redir_stack (REDIRECT *redir)
14
+ +{
15
+ + /* Guard against oveflow. */
16
+ + if (need_here_doc + 1 > INT_MAX / sizeof (*redir_stack))
17
+ + abort ();
18
+ + redir_stack = xrealloc (redir_stack,
19
+ + (need_here_doc + 1) * sizeof (*redir_stack));
20
+ + redir_stack[need_here_doc++] = redir;
21
+ +}
22
+ +
23
+ /* Where shell input comes from. History expansion is performed on each
24
+ line when the shell is interactive. */
25
+ static char *shell_input_line = (char *)NULL;
26
+ @@ -519,42 +531,42 @@
27
+ source.dest = 0;
28
+ redir.filename = $2;
29
+ $$ = make_redirection (source, r_reading_until, redir, 0);
30
+ - redir_stack[need_here_doc++] = $$;
31
+ + push_redir_stack ($$);
32
+ }
33
+ | NUMBER LESS_LESS WORD
34
+ {
35
+ source.dest = $1;
36
+ redir.filename = $3;
37
+ $$ = make_redirection (source, r_reading_until, redir, 0);
38
+ - redir_stack[need_here_doc++] = $$;
39
+ + push_redir_stack ($$);
40
+ }
41
+ | REDIR_WORD LESS_LESS WORD
42
+ {
43
+ source.filename = $1;
44
+ redir.filename = $3;
45
+ $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN);
46
+ - redir_stack[need_here_doc++] = $$;
47
+ + push_redir_stack ($$);
48
+ }
49
+ | LESS_LESS_MINUS WORD
50
+ {
51
+ source.dest = 0;
52
+ redir.filename = $2;
53
+ $$ = make_redirection (source, r_deblank_reading_until, redir, 0);
54
+ - redir_stack[need_here_doc++] = $$;
55
+ + push_redir_stack ($$);
56
+ }
57
+ | NUMBER LESS_LESS_MINUS WORD
58
+ {
59
+ source.dest = $1;
60
+ redir.filename = $3;
61
+ $$ = make_redirection (source, r_deblank_reading_until, redir, 0);
62
+ - redir_stack[need_here_doc++] = $$;
63
+ + push_redir_stack ($$);
64
+ }
65
+ | REDIR_WORD LESS_LESS_MINUS WORD
66
+ {
67
+ source.filename = $1;
68
+ redir.filename = $3;
69
+ $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN);
70
+ - redir_stack[need_here_doc++] = $$;
71
+ + push_redir_stack ($$);
72
+ }
73
+ | LESS_LESS_LESS WORD
74
+ {
75
+ @@ -4757,7 +4769,7 @@
76
+ case CASE:
77
+ case SELECT:
78
+ case FOR:
79
+ - if (word_top < MAX_CASE_NEST)
80
+ + if (word_top + 1 < MAX_CASE_NEST)
81
+ word_top++;
82
+ word_lineno[word_top] = line_number;
83
+ break;
SOURCES/bash-4.2-double-alloc.patch ADDED
@@ -0,0 +1,11 @@
1
+ --- bash-4.1/subst.c 2015-04-07 10:00:00.482931289 +0900
2
+ +++ bash-4.1/subst.c 2015-04-07 10:01:28.258111134 +0900
3
+ @@ -7039,8 +7039,6 @@
4
+
5
+ ret = alloc_word_desc ();
6
+ ret->word = temp1;
7
+ - ret = alloc_word_desc ();
8
+ - ret->word = temp1;
9
+ if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
10
+ ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
11
+ return ret;
SOURCES/bash-4.2-enable-hyphened-fn-export.patch ADDED
@@ -0,0 +1,11 @@
1
+ --- variables.cold 2015-01-16 13:53:13.817363093 +0100
2
+ +++ variables.c 2015-01-16 13:57:41.839425969 +0100
3
+ @@ -366,7 +366,7 @@ initialize_shell_variables (env, privmod
4
+ /* Don't import function names that are invalid identifiers from the
5
+ environment, though we still allow them to be defined as shell
6
+ variables. */
7
+ - if (legal_identifier (temp_name))
8
+ + if (absolute_program (temp_name) == 0 && (posixly_correct == 0 || legal_identifier (temp_name)))
9
+ parse_and_execute (temp_string, temp_name,
10
+ SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
11
+
SOURCES/bash-4.2-env-inject.patch ADDED
@@ -0,0 +1,73 @@
1
+ *** ../bash-4.3-patched/builtins/common.h 2013-07-08 16:54:47.000000000 -0400
2
+ --- builtins/common.h 2014-09-12 14:25:47.000000000 -0400
3
+ ***************
4
+ *** 34,37 ****
5
+ --- 49,54 ----
6
+ #define SEVAL_PARSEONLY 0x020
7
+ #define SEVAL_NOLONGJMP 0x040
8
+ + #define SEVAL_FUNCDEF 0x080 /* only allow function definitions */
9
+ + #define SEVAL_ONECMD 0x100 /* only allow a single command */
10
+
11
+ /* Flags for describe_command, shared between type.def and command.def */
12
+ *** ../bash-4.3-patched/builtins/evalstring.c 2014-02-11 09:42:10.000000000 -0500
13
+ --- builtins/evalstring.c 2014-09-14 14:15:13.000000000 -0400
14
+ ***************
15
+ *** 309,312 ****
16
+ --- 313,324 ----
17
+ struct fd_bitmap *bitmap;
18
+
19
+ + if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def)
20
+ + {
21
+ + internal_warning ("%s: ignoring function definition attempt", from_file);
22
+ + should_jump_to_top_level = 0;
23
+ + last_result = last_command_exit_value = EX_BADUSAGE;
24
+ + break;
25
+ + }
26
+ +
27
+ bitmap = new_fd_bitmap (FD_BITMAP_SIZE);
28
+ begin_unwind_frame ("pe_dispose");
29
+ ***************
30
+ *** 369,372 ****
31
+ --- 381,387 ----
32
+ dispose_fd_bitmap (bitmap);
33
+ discard_unwind_frame ("pe_dispose");
34
+ +
35
+ + if (flags & SEVAL_ONECMD)
36
+ + break;
37
+ }
38
+ }
39
+ *** ../bash-4.3-patched/variables.c 2014-05-15 08:26:50.000000000 -0400
40
+ --- variables.c 2014-09-14 14:23:35.000000000 -0400
41
+ ***************
42
+ *** 359,368 ****
43
+ strcpy (temp_string + char_index + 1, string);
44
+
45
+ ! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST);
46
+ !
47
+ ! /* Ancient backwards compatibility. Old versions of bash exported
48
+ ! functions like name()=() {...} */
49
+ ! if (name[char_index - 1] == ')' && name[char_index - 2] == '(')
50
+ ! name[char_index - 2] = '\0';
51
+
52
+ if (temp_var = find_function (name))
53
+ --- 364,372 ----
54
+ strcpy (temp_string + char_index + 1, string);
55
+
56
+ ! /* Don't import function names that are invalid identifiers from the
57
+ ! environment, though we still allow them to be defined as shell
58
+ ! variables. */
59
+ ! if (legal_identifier (name))
60
+ ! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
61
+
62
+ if (temp_var = find_function (name))
63
+ ***************
64
+ *** 362,369 ****
65
+ else
66
+ report_error (_("error importing function definition for `%s'"), name);
67
+ -
68
+ - /* ( */
69
+ - if (name[char_index - 1] == ')' && name[char_index - 2] == '\0')
70
+ - name[char_index - 2] = '('; /* ) */
71
+ }
72
+ #if defined (ARRAY_VARS)
73
+ --- 360,363 ----
SOURCES/bash-4.2-extglob-man.patch ADDED
@@ -0,0 +1,28 @@
1
+ diff --git a/doc/bash.1 b/doc/bash.1
2
+ --- a/doc/bash.1 2010-07-28 08:42:54.000000000 +0200
3
+ +++ b/doc/bash.1 2010-07-28 08:43:17.000000000 +0200
4
+ @@ -3220,8 +3220,7 @@
5
+ .RE
6
+ .PD
7
+ .PP
8
+ -If the \fBextglob\fP shell option is enabled using the \fBshopt\fP
9
+ -builtin, several extended pattern matching operators are recognized.
10
+ +Several extended pattern matching operators are recognized.
11
+ In the following description, a \fIpattern-list\fP is a list of one
12
+ or more patterns separated by a \fB|\fP.
13
+ Composite patterns may be formed using one or more of the following
14
+ @@ -3241,6 +3240,14 @@
15
+ .TP
16
+ \fB@(\fP\^\fIpattern-list\^\fP\fB)\fP
17
+ Matches one of the given patterns
18
+ +.RE
19
+ +.PD
20
+ +.PP
21
+ +If the \fBextglob\fP shell option is enabled using the \fBshopt\fP
22
+ +builtin, following pattern matching operator is recognized as well:
23
+ +.sp 1
24
+ +.PD 0
25
+ +.RS
26
+ .TP
27
+ \fB!(\fP\^\fIpattern-list\^\fP\fB)\fP
28
+ Matches anything except one of the given patterns
SOURCES/bash-4.2-history-hang.patch ADDED
@@ -0,0 +1,11 @@
1
+ --- a/lib/readline/history.c 2014-05-27 16:55:58.040214069 +0200
2
+ +++ b/lib/readline/history.c 2014-05-27 16:56:11.243204928 +0200
3
+ @@ -318,7 +318,7 @@ add_history_time (string)
4
+ {
5
+ HIST_ENTRY *hs;
6
+
7
+ - if (string == 0)
8
+ + if (string == 0 || history_length < 1)
9
+ return;
10
+ hs = the_history[history_length - 1];
11
+ FREE (hs->timestamp);
SOURCES/bash-4.2-ifs-in-temp-env.patch ADDED
@@ -0,0 +1,35 @@
1
+ --- bash-4.2/redir.c 2015-04-27 23:03:55.663182162 +0200
2
+ +++ bash-4.2/redir.c 2015-04-27 23:03:13.995181816 +0200
3
+ @@ -63,6 +63,7 @@ int expanding_redir;
4
+
5
+ extern int posixly_correct;
6
+ extern int last_command_exit_value;
7
+ +extern int executing_builtin;
8
+ extern REDIRECT *redirection_undo_list;
9
+ extern REDIRECT *exec_redirection_undo_list;
10
+
11
+ @@ -307,11 +308,23 @@ write_here_string (fd, redirectee)
12
+ WORD_DESC *redirectee;
13
+ {
14
+ char *herestr;
15
+ - int herelen, n, e;
16
+ + int herelen, n, e, old;
17
+
18
+ expanding_redir = 1;
19
+ + /* Now that we've changed the variable search order to ignore the temp
20
+ + environment, see if we need to change the cached IFS values. */
21
+ + sv_ifs ("IFS");
22
+ herestr = expand_string_to_string (redirectee->word, 0);
23
+ expanding_redir = 0;
24
+ + /* Now we need to change the variable search order back to include the temp
25
+ + environment. We force the temp environment search by forcing
26
+ + executing_builtin to 1. This is what makes `read' get the right values
27
+ + for the IFS-related cached variables, for example. */
28
+ + old = executing_builtin;
29
+ + executing_builtin = 1;
30
+ + sv_ifs ("IFS");
31
+ + executing_builtin = old;
32
+ +
33
+ herelen = STRLEN (herestr);
34
+
35
+ n = write (fd, herestr, herelen);
SOURCES/bash-4.2-leak-compound.patch ADDED
@@ -0,0 +1,12 @@
1
+ diff -up bash-4.2/subst.c.old bash-4.2/subst.c
2
+ --- bash-4.2/subst.c.old 2015-12-09 13:24:47.369738319 +0100
3
+ +++ bash-4.2/subst.c 2015-12-09 13:28:27.366024824 +0100
4
+ @@ -2713,6 +2713,8 @@ do_compound_assignment (name, value, fla
5
+ else if (v == 0 || (array_p (v) == 0 && assoc_p (v) == 0) || v->context != variable_context)
6
+ v = make_local_array_variable (name);
7
+ assign_compound_array_list (v, list, flags);
8
+ + if (list)
9
+ + dispose_words (list);
10
+ }
11
+ else
12
+ v = assign_array_from_string (name, value, flags);
SOURCES/bash-4.2-man-ulimit.patch ADDED
@@ -0,0 +1,24 @@
1
+ From ccd35766d2451677f4c49f66b8e18ad6e274d56a Mon Sep 17 00:00:00 2001
2
+ From: Jan Chaloupka <jchaloup@redhat.com>
3
+ Date: Mon, 7 Jul 2014 07:15:41 +0200
4
+ Subject: [PATCH] bash.1: posix block size for cf options
5
+
6
+ ---
7
+ doc/bash.1 | 1 +
8
+ 1 file changed, 1 insertion(+)
9
+
10
+ diff --git a/doc/bash.1 b/doc/bash.1
11
+ index a4ad746..1916515 100644
12
+ --- a/doc/bash.1
13
+ +++ b/doc/bash.1
14
+ @@ -9451,6 +9451,7 @@ and
15
+ which are unscaled values.
16
+ The return status is 0 unless an invalid option or argument is supplied,
17
+ or an error occurs while setting a new limit.
18
+ +In POSIX Mode 512-byte blocks are used for the `-c' and `-f' options.
19
+ .RE
20
+ .TP
21
+ \fBumask\fP [\fB\-p\fP] [\fB\-S\fP] [\fImode\fP]
22
+ --
23
+ 1.9.3
24
+
SOURCES/bash-4.2-manpage.patch ADDED
@@ -0,0 +1,53 @@
1
+ diff -up bash-4.2/doc/bash.1.manpage bash-4.2/doc/bash.1
2
+ --- bash-4.2/doc/bash.1.manpage 2011-01-26 15:30:03.000000000 +0100
3
+ +++ bash-4.2/doc/bash.1 2011-01-26 15:47:16.000000000 +0100
4
+ @@ -6646,7 +6646,9 @@ must be \(>= 1. If
5
+ .I n
6
+ is greater than the number of enclosing loops, all enclosing loops
7
+ are exited.
8
+ -The return value is 0 unless \fIn\fP is not greater than or equal to 1.
9
+ +The return value is non-zero when \fIn\fP is \(<= 0; Otherwise,
10
+ +.BR break
11
+ +returns 0 value.
12
+ .TP
13
+ \fBbuiltin\fP \fIshell\-builtin\fP [\fIarguments\fP]
14
+ Execute the specified shell builtin, passing it
15
+ @@ -7017,7 +7019,15 @@ must be \(>= 1. If
16
+ .I n
17
+ is greater than the number of enclosing loops, the last enclosing loop
18
+ (the ``top-level'' loop) is resumed.
19
+ -The return value is 0 unless \fIn\fP is not greater than or equal to 1.
20
+ +When
21
+ +.BR continue
22
+ +is executed inside of loop, the return value is non-zero when
23
+ +.I n
24
+ +is \(<= 0; Otherwise,
25
+ +.BR continue
26
+ +returns 0 value. When
27
+ +.BR continue
28
+ +is executed outside of loop, the return value is 0.
29
+ .TP
30
+ \fBdeclare\fP [\fB\-aAfFgilrtux\fP] [\fB\-p\fP] [\fIname\fP[=\fIvalue\fP] ...]
31
+ .PD 0
32
+ @@ -9019,9 +9029,19 @@ by default.
33
+ Suspend the execution of this shell until it receives a
34
+ .SM
35
+ .B SIGCONT
36
+ -signal. A login shell cannot be suspended; the
37
+ +signal. When the suspended shell is a background process, it can be restarted
38
+ +by the
39
+ +.B fg
40
+ +command. For more information, read the
41
+ +.SM
42
+ +.B JOB CONTROL
43
+ +section. The
44
+ +.B suspend
45
+ +command can not suspend the login shell. However, when
46
+ .B \-f
47
+ -option can be used to override this and force the suspension.
48
+ +option is specified,
49
+ +.B suspend
50
+ +command can suspend even login shell.
51
+ The return status is 0 unless the shell is a login shell and
52
+ .B \-f
53
+ is not supplied, or if job control is not enabled.
SOURCES/bash-4.2-manpage_trap.patch ADDED
@@ -0,0 +1,12 @@
1
+ diff -up bash-4.1/doc/bash.1.manpage_trap bash-4.1/doc/bash.1
2
+ --- bash-4.1/doc/bash.1.manpage_trap 2012-08-28 10:06:00.561999092 +0200
3
+ +++ bash-4.1/doc/bash.1 2012-08-28 10:06:24.225304505 +0200
4
+ @@ -9251,7 +9251,7 @@ being inverted via
5
+ These are the same conditions obeyed by the \fBerrexit\fP option.
6
+ .if t .sp 0.5
7
+ .if n .sp 1
8
+ -Signals ignored upon entry to the shell cannot be trapped or reset.
9
+ +Signals ignored upon entry to the shell cannot be trapped, reset or listed.
10
+ Trapped signals that are not being ignored are reset to their original
11
+ values in a subshell or subshell environment when one is created.
12
+ The return status is false if any
SOURCES/bash-4.2-missing-opt-cd.patch ADDED
@@ -0,0 +1,12 @@
1
+ diff -up bash-4.2/builtins/cd.def.old bash-4.2/builtins/cd.def
2
+ --- bash-4.2/builtins/cd.def.old 2015-12-09 11:47:59.113106805 +0100
3
+ +++ bash-4.2/builtins/cd.def 2015-12-09 11:48:13.702060840 +0100
4
+ @@ -200,7 +200,7 @@ cd_builtin (list)
5
+ eflag = 0;
6
+ no_symlinks = no_symbolic_links;
7
+ reset_internal_getopt ();
8
+ - while ((opt = internal_getopt (list, "LP")) != -1)
9
+ + while ((opt = internal_getopt (list, "LPe")) != -1)
10
+ {
11
+ switch (opt)
12
+ {
SOURCES/bash-4.2-missing_closes.patch ADDED
@@ -0,0 +1,39 @@
1
+ There are missing calls of close() leading to resource leak (fd leak).
2
+ Simple reproducer:
3
+ . /
4
+ and /proc/$$/fd contain one open fd for each above call
5
+
6
+ Signed-off-by: Roman Rakus <rrakus@redhat.com>
7
+ ---
8
+ builtins/evalfile.c | 3 +++
9
+ 1 file changed, 3 insertions(+)
10
+
11
+ diff --git a/builtins/evalfile.c b/builtins/evalfile.c
12
+ index 60f89d1..d30bd96 100644
13
+ --- a/builtins/evalfile.c
14
+ +++ b/builtins/evalfile.c
15
+ @@ -133,11 +133,13 @@ file_error_and_exit:
16
+ if (S_ISDIR (finfo.st_mode))
17
+ {
18
+ (*errfunc) (_("%s: is a directory"), filename);
19
+ + close(fd);
20
+ return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);
21
+ }
22
+ else if ((flags & FEVAL_REGFILE) && S_ISREG (finfo.st_mode) == 0)
23
+ {
24
+ (*errfunc) (_("%s: not a regular file"), filename);
25
+ + close(fd);
26
+ return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);
27
+ }
28
+
29
+ @@ -146,6 +148,7 @@ file_error_and_exit:
30
+ if (file_size != finfo.st_size || file_size + 1 < file_size)
31
+ {
32
+ (*errfunc) (_("%s: file is too large"), filename);
33
+ + close(fd);
34
+ return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);
35
+ }
36
+
37
+ --
38
+ 1.7.11.7
39
+
SOURCES/bash-4.2-noecho.patch ADDED
@@ -0,0 +1,39 @@
1
+ --- bash-4.2/parse.y 2014-05-29 14:46:09.545543384 +0200
2
+ +++ bash-4.2/parse.y 2014-05-29 14:48:40.758626213 +0200
3
+ @@ -3858,6 +3858,8 @@ xparse_dolparen (base, string, indp, fla
4
+ sflags |= SEVAL_NOLONGJMP;
5
+ save_parser_state (&ps);
6
+ save_input_line_state (&ls);
7
+ + /* avoid echoing every substitution again */
8
+ + echo_input_at_read = 0;
9
+
10
+ /*(*/
11
+ parser_state |= PST_CMDSUBST|PST_EOFTOKEN; /* allow instant ')' */ /*(*/
12
+ --- bash-4.2/subst.c 2014-05-29 16:04:35.802784549 +0200
13
+ +++ bash-4.2/subst.c 2014-05-29 16:08:25.021942676 +0200
14
+ @@ -7103,6 +7103,7 @@ param_expand (string, sindex, quoted, ex
15
+ WORD_LIST *list;
16
+ WORD_DESC *tdesc, *ret;
17
+ int tflag;
18
+ + int old_echo_input;
19
+
20
+ zindex = *sindex;
21
+ c = string[++zindex];
22
+ @@ -7401,6 +7402,9 @@ arithsub:
23
+ }
24
+
25
+ comsub:
26
+ + old_echo_input = echo_input_at_read;
27
+ + /* avoid echoing every substitution again */
28
+ + echo_input_at_read = 0;
29
+ if (pflags & PF_NOCOMSUB)
30
+ /* we need zindex+1 because string[zindex] == RPAREN */
31
+ temp1 = substring (string, *sindex, zindex+1);
32
+ @@ -7413,6 +7417,7 @@ comsub:
33
+ }
34
+ FREE (temp);
35
+ temp = temp1;
36
+ + echo_input_at_read = old_echo_input;
37
+ break;
38
+
39
+ /* Do POSIX.2d9-style arithmetic substitution. This will probably go
SOURCES/bash-4.2-rc2-logout.patch ADDED
@@ -0,0 +1,36 @@
1
+ diff -up bash-3.2/config-top.h.logout bash-3.2/config-top.h
2
+ --- bash-3.2/config-top.h.logout 2011-04-14 08:55:55.000000000 +0200
3
+ +++ bash-3.2/config-top.h 2011-04-14 08:55:55.000000000 +0200
4
+ @@ -78,7 +78,7 @@
5
+ /* #define SYS_BASHRC "/etc/bash.bashrc" */
6
+
7
+ /* System-wide .bash_logout for login shells. */
8
+ -/* #define SYS_BASH_LOGOUT "/etc/bash.bash_logout" */
9
+ +#define SYS_BASH_LOGOUT "/etc/bash.bash_logout"
10
+
11
+ /* Define this to make non-interactive shells begun with argv[0][0] == '-'
12
+ run the startup files when not in posix mode. */
13
+ diff -up bash-3.2/doc/bash.1.logout bash-3.2/doc/bash.1
14
+ --- bash-3.2/doc/bash.1.logout 2011-04-14 09:16:32.000000000 +0200
15
+ +++ bash-3.2/doc/bash.1 2011-04-14 11:59:33.000000000 +0200
16
+ @@ -326,8 +326,8 @@ option may be used when the shell is sta
17
+ .PP
18
+ When a login shell exits,
19
+ .B bash
20
+ -reads and executes commands from the file \fI~/.bash_logout\fP, if it
21
+ -exists.
22
+ +reads and executes commands from the files \fI~/.bash_logout\fP
23
+ +and \fI/etc/bash.bash_logout\fP, if the files exists.
24
+ .PP
25
+ When an interactive shell that is not a login shell is started,
26
+ .B bash
27
+ @@ -8814,6 +8814,9 @@ The \fBbash\fP executable
28
+ .FN /etc/profile
29
+ The systemwide initialization file, executed for login shells
30
+ .TP
31
+ +.FN /etc/bash.bash_logout
32
+ +The systemwide login shell cleanup file, executed when a login shell exits
33
+ +.TP
34
+ .FN ~/.bash_profile
35
+ The personal initialization file, executed for login shells
36
+ .TP
SOURCES/bash-4.2-signal.patch ADDED
@@ -0,0 +1,36 @@
1
+ diff -up bash-4.1/sig.h.signal bash-4.1/sig.h
2
+ --- bash-4.1/sig.h.signal 2009-01-04 20:32:41.000000000 +0100
3
+ +++ bash-4.1/sig.h 2012-08-28 11:19:14.920224571 +0200
4
+ @@ -96,6 +96,8 @@ do { \
5
+ sigprocmask (SIG_BLOCK, &nvar, &ovar); \
6
+ } while (0)
7
+
8
+ +#define UNBLOCK_SIGNAL(ovar) sigprocmask (SIG_SETMASK, &ovar, (sigset_t *)NULL)
9
+ +
10
+ #if defined (HAVE_POSIX_SIGNALS)
11
+ # define BLOCK_CHILD(nvar, ovar) \
12
+ BLOCK_SIGNAL (SIGCHLD, nvar, ovar)
13
+ diff -up bash-4.1/trap.c.signal bash-4.1/trap.c
14
+ --- bash-4.1/trap.c.signal 2009-10-10 23:21:44.000000000 +0200
15
+ +++ bash-4.1/trap.c 2012-08-28 10:58:14.746345797 +0200
16
+ @@ -516,6 +516,8 @@ set_signal (sig, string)
17
+ int sig;
18
+ char *string;
19
+ {
20
+ + sigset_t set, oset;
21
+ +
22
+ if (SPECIAL_TRAP (sig))
23
+ {
24
+ change_signal (sig, savestring (string));
25
+ @@ -546,9 +548,10 @@ set_signal (sig, string)
26
+ environment in which it is safe to do so. */
27
+ if ((sigmodes[sig] & SIG_NO_TRAP) == 0)
28
+ {
29
+ - set_signal_handler (sig, SIG_IGN);
30
+ + BLOCK_SIGNAL (sig, set, oset);
31
+ change_signal (sig, savestring (string));
32
+ set_signal_handler (sig, trap_handler);
33
+ + UNBLOCK_SIGNAL (oset);
34
+ }
35
+ else
36
+ change_signal (sig, savestring (string));
SOURCES/bash-4.2-size_type.patch ADDED
@@ -0,0 +1,14 @@
1
+ diff -up bash-4.2/variables.h.size_type bash-4.2/variables.h
2
+ --- bash-4.2/variables.h.size_type 2012-11-29 10:33:25.109036844 +0100
3
+ +++ bash-4.2/variables.h 2012-11-29 10:46:12.718530162 +0100
4
+ @@ -95,8 +95,8 @@ typedef struct variable {
5
+
6
+ typedef struct _vlist {
7
+ SHELL_VAR **list;
8
+ - int list_size; /* allocated size */
9
+ - int list_len; /* current number of entries */
10
+ + size_t list_size; /* allocated size */
11
+ + size_t list_len; /* current number of entries */
12
+ } VARLIST;
13
+
14
+ /* The various attributes that a given variable can have. */
SOURCES/bash-4.3-cve-2016-0634.patch ADDED
@@ -0,0 +1,95 @@
1
+ diff --git a/parse.y b/parse.y
2
+ index 12d6def..d4a93a2 100644
3
+ --- a/parse.y
4
+ +++ b/parse.y
5
+ @@ -5103,7 +5103,7 @@ decode_prompt_string (string)
6
+ size_t result_size;
7
+ int result_index;
8
+ int c, n, i;
9
+ - char *temp, octal_string[4];
10
+ + char *temp, *t_host, octal_string[4];
11
+ struct tm *tm;
12
+ time_t the_time;
13
+ char timebuf[128];
14
+ @@ -5251,7 +5251,11 @@ decode_prompt_string (string)
15
+
16
+ case 's':
17
+ temp = base_pathname (shell_name);
18
+ - temp = savestring (temp);
19
+ + /* Try to quote anything the user can set in the file system */
20
+ + if (promptvars || posixly_correct)
21
+ + temp = sh_backslash_quote_for_double_quotes (temp);
22
+ + else
23
+ + temp = savestring (temp);
24
+ goto add_string;
25
+
26
+ case 'v':
27
+ @@ -5337,9 +5341,17 @@ decode_prompt_string (string)
28
+
29
+ case 'h':
30
+ case 'H':
31
+ - temp = savestring (current_host_name);
32
+ - if (c == 'h' && (t = (char *)strchr (temp, '.')))
33
+ + t_host = savestring (current_host_name);
34
+ + if (c == 'h' && (t = (char *)strchr (t_host, '.')))
35
+ *t = '\0';
36
+ + if (promptvars || posixly_correct)
37
+ + /* Make sure that expand_prompt_string is called with a
38
+ + second argument of Q_DOUBLE_QUOTES if we use this
39
+ + function here. */
40
+ + temp = sh_backslash_quote_for_double_quotes (t_host);
41
+ + else
42
+ + temp = savestring (t_host);
43
+ + free (t_host);
44
+ goto add_string;
45
+
46
+ case '#':
47
+ diff --git a/y.tab.c b/y.tab.c
48
+ index 23b88bc..1c0f5a1 100644
49
+ --- a/y.tab.c
50
+ +++ b/y.tab.c
51
+ @@ -7368,7 +7368,7 @@ decode_prompt_string (string)
52
+ size_t result_size;
53
+ int result_index;
54
+ int c, n, i;
55
+ - char *temp, octal_string[4];
56
+ + char *temp, *t_host, octal_string[4];
57
+ struct tm *tm;
58
+ time_t the_time;
59
+ char timebuf[128];
60
+ @@ -7513,7 +7513,11 @@ decode_prompt_string (string)
61
+
62
+ case 's':
63
+ temp = base_pathname (shell_name);
64
+ - temp = savestring (temp);
65
+ + /* Try to quote anything the user can set in the file system */
66
+ + if (promptvars || posixly_correct)
67
+ + temp = sh_backslash_quote_for_double_quotes (temp);
68
+ + else
69
+ + temp = savestring (temp);
70
+ goto add_string;
71
+
72
+ case 'v':
73
+ @@ -7599,9 +7603,17 @@ decode_prompt_string (string)
74
+
75
+ case 'h':
76
+ case 'H':
77
+ - temp = savestring (current_host_name);
78
+ - if (c == 'h' && (t = (char *)strchr (temp, '.')))
79
+ + t_host = savestring (current_host_name);
80
+ + if (c == 'h' && (t = (char *)strchr (t_host, '.')))
81
+ *t = '\0';
82
+ + if (promptvars || posixly_correct)
83
+ + /* Make sure that expand_prompt_string is called with a
84
+ + second argument of Q_DOUBLE_QUOTES if we use this
85
+ + function here. */
86
+ + temp = sh_backslash_quote_for_double_quotes (t_host);
87
+ + else
88
+ + temp = savestring (t_host);
89
+ + free (t_host);
90
+ goto add_string;
91
+
92
+ case '#':
93
+ --
94
+ 2.9.3
95
+
SOURCES/bash-4.3-cve-2016-7543.patch ADDED
@@ -0,0 +1,20 @@
1
+ diff --git a/variables.c b/variables.c
2
+ index b7ebaea..5e2986f 100644
3
+ --- a/variables.c
4
+ +++ b/variables.c
5
+ @@ -467,7 +467,11 @@ initialize_shell_variables (env, privmode)
6
+ #endif
7
+ set_if_not ("PS2", secondary_prompt);
8
+ }
9
+ - set_if_not ("PS4", "+ ");
10
+ +
11
+ + if (current_user.euid == 0)
12
+ + bind_variable ("PS4", "+ ", 0);
13
+ + else
14
+ + set_if_not ("PS4", "+ ");
15
+
16
+ /* Don't allow IFS to be imported from the environment. */
17
+ temp_var = bind_variable ("IFS", " \t\n", 0);
18
+ --
19
+ 2.9.3
20
+
SOURCES/bash-4.3-pipefd-leak.patch ADDED
@@ -0,0 +1,60 @@
1
+ diff --git a/execute_cmd.c b/execute_cmd.c
2
+ --- a/execute_cmd.c
3
+ +++ b/execute_cmd.c
4
+ @@ -536,6 +536,10 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
5
+ REDIRECT *my_undo_list, *exec_undo_list;
6
+ volatile int last_pid;
7
+ volatile int save_line_number;
8
+ +#if defined (PROCESS_SUBSTITUTION)
9
+ + volatile int ofifo, nfifo, osize, saved_fifo;
10
+ + volatile char *ofifo_list = NULL;
11
+ +#endif
12
+
13
+ #if 0
14
+ if (command == 0 || breaking || continuing || read_but_dont_execute)
15
+ @@ -681,6 +685,17 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
16
+ if (shell_control_structure (command->type) && command->redirects)
17
+ stdin_redir = stdin_redirects (command->redirects);
18
+
19
+ +#if defined (PROCESS_SUBSTITUTION)
20
+ + if (variable_context != 0)
21
+ + {
22
+ + ofifo = num_fifos ();
23
+ + ofifo_list = copy_fifo_list ((int*)&osize);
24
+ + saved_fifo = 1;
25
+ + }
26
+ + else
27
+ + saved_fifo = 0;
28
+ +#endif
29
+ +
30
+ /* Handle WHILE FOR CASE etc. with redirections. (Also '&' input
31
+ redirection.) */
32
+ if (do_redirections (command->redirects, RX_ACTIVE|RX_UNDOABLE) != 0)
33
+ @@ -688,6 +703,9 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
34
+ cleanup_redirects (redirection_undo_list);
35
+ redirection_undo_list = (REDIRECT *)NULL;
36
+ dispose_exec_redirects ();
37
+ +#if defined (PROCESS_SUBSTITUTION)
38
+ + free ((void*)ofifo_list);
39
+ +#endif
40
+ return (last_command_exit_value = EXECUTION_FAILURE);
41
+ }
42
+
43
+ @@ -982,6 +1000,17 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
44
+ if (my_undo_list || exec_undo_list)
45
+ discard_unwind_frame ("loop_redirections");
46
+
47
+ +#if defined (PROCESS_SUBSTITUTION)
48
+ + if (saved_fifo)
49
+ + {
50
+ + nfifo = num_fifos ();
51
+ + if (nfifo > ofifo)
52
+ + close_new_fifos ((char*)ofifo_list, osize);
53
+ + free ((void*)ofifo_list);
54
+ + }
55
+ +#endif
56
+ +
57
+ +
58
+ /* Invert the return value if we have to */
59
+ if (invert)
60
+ exec_result = (exec_result == EXECUTION_SUCCESS)
SOURCES/bash-4.3-trapped-signals.patch ADDED
@@ -0,0 +1,24 @@
1
+ diff --git a/jobs.c b/jobs.c
2
+ index 37edece..31395fe 100644
3
+ --- a/jobs.c
4
+ +++ b/jobs.c
5
+ @@ -2244,10 +2244,14 @@ wait_sigint_handler (sig)
6
+ signal_is_trapped (SIGINT) &&
7
+ ((sigint_handler = trap_to_sighandler (SIGINT)) == trap_handler))
8
+ {
9
+ - interrupt_immediately = 0;
10
+ trap_handler (SIGINT); /* set pending_traps[SIGINT] */
11
+ wait_signal_received = SIGINT;
12
+ - longjmp (wait_intr_buf, 1);
13
+ + if (interrupt_immediately)
14
+ + {
15
+ + interrupt_immediately = 0;
16
+ + longjmp (wait_intr_buf, 1);
17
+ + }
18
+ + SIGRETURN (0);
19
+ }
20
+
21
+ ADDINTERRUPT;
22
+ --
23
+ 2.5.5
24
+
SOURCES/bash-4.3-wshouldquote.patch ADDED
@@ -0,0 +1,149 @@
1
+ diff --git a/lib/sh/strtrans.c b/lib/sh/strtrans.c
2
+ --- a/lib/sh/strtrans.c
3
+ +++ b/lib/sh/strtrans.c
4
+ @@ -30,6 +30,9 @@
5
+
6
+ #include "shell.h"
7
+
8
+ +#include "shmbchar.h"
9
+ +#include "shmbutil.h"
10
+ +
11
+ #ifdef ESC
12
+ #undef ESC
13
+ #endif
14
+ @@ -74,7 +77,7 @@ ansicstr (string, len, flags, sawc, rlen)
15
+ case 'a': c = '\a'; break;
16
+ case 'v': c = '\v'; break;
17
+ #else
18
+ - case 'a': c = '\007'; break;
19
+ + case 'a': c = (int) 0x07; break;
20
+ case 'v': c = (int) 0x0B; break;
21
+ #endif
22
+ case 'b': c = '\b'; break;
23
+ @@ -208,6 +211,11 @@ ansic_quote (str, flags, rlen)
24
+ char *r, *ret, *s;
25
+ int l, rsize;
26
+ unsigned char c;
27
+ + size_t clen;
28
+ + int b;
29
+ +#if defined (HANDLE_MULTIBYTE)
30
+ + wchar_t wc;
31
+ +#endif
32
+
33
+ if (str == 0 || *str == 0)
34
+ return ((char *)0);
35
+ @@ -219,10 +227,11 @@ ansic_quote (str, flags, rlen)
36
+ *r++ = '$';
37
+ *r++ = '\'';
38
+
39
+ - for (s = str, l = 0; *s; s++)
40
+ + for (s = str; c = *s; s++)
41
+ {
42
+ - c = *s;
43
+ - l = 1; /* 1 == add backslash; 0 == no backslash */
44
+ + b = l = 1; /* 1 == add backslash; 0 == no backslash */
45
+ + clen = 1;
46
+ +
47
+ switch (c)
48
+ {
49
+ case ESC: c = 'E'; break;
50
+ @@ -230,7 +239,7 @@ ansic_quote (str, flags, rlen)
51
+ case '\a': c = 'a'; break;
52
+ case '\v': c = 'v'; break;
53
+ #else
54
+ - case '\007': c = 'a'; break;
55
+ + case 0x07: c = 'a'; break;
56
+ case 0x0b: c = 'v'; break;
57
+ #endif
58
+
59
+ @@ -243,7 +252,13 @@ ansic_quote (str, flags, rlen)
60
+ case '\'':
61
+ break;
62
+ default:
63
+ +#if defined (HANDLE_MULTIBYTE)
64
+ + b = is_basic (c);
65
+ + if ((b == 0 && ((clen = mbrtowc (&wc, s, MB_CUR_MAX, 0)) < 0 || MB_INVALIDCH (clen) || iswprint (wc) == 0)) ||
66
+ + (b == 1 && ISPRINT (c) == 0))
67
+ +#else
68
+ if (ISPRINT (c) == 0)
69
+ +#endif
70
+ {
71
+ *r++ = '\\';
72
+ *r++ = TOCHAR ((c >> 6) & 07);
73
+ @@ -254,9 +269,20 @@ ansic_quote (str, flags, rlen)
74
+ l = 0;
75
+ break;
76
+ }
77
+ + if (b == 0 && clen == 0)
78
+ + break;
79
+ +
80
+ if (l)
81
+ *r++ = '\\';
82
+ - *r++ = c;
83
+ +
84
+ + if (clen == 1)
85
+ + *r++ = c;
86
+ + else
87
+ + {
88
+ + for (b = 0; b < (int)clen; b++)
89
+ + *r++ = (unsigned char)s[b];
90
+ + s += clen - 1; /* -1 because of the increment above */
91
+ + }
92
+ }
93
+
94
+ *r++ = '\'';
95
+ @@ -266,6 +292,37 @@ ansic_quote (str, flags, rlen)
96
+ return ret;
97
+ }
98
+
99
+ +#if defined (HANDLE_MULTIBYTE)
100
+ +int
101
+ +ansic_wshouldquote (string)
102
+ + const char *string;
103
+ +{
104
+ + const wchar_t *wcs;
105
+ + wchar_t wcc;
106
+ +
107
+ + wchar_t *wcstr = NULL;
108
+ + size_t slen;
109
+ +
110
+ +
111
+ + slen = mbstowcs (wcstr, string, 0);
112
+ +
113
+ + if (slen == -1)
114
+ + slen = 0;
115
+ + wcstr = (wchar_t *)xmalloc (sizeof (wchar_t) * (slen + 1));
116
+ + mbstowcs (wcstr, string, slen + 1);
117
+ +
118
+ + for (wcs = wcstr; wcc = *wcs; wcs++)
119
+ + if (iswprint(wcc) == 0)
120
+ + {
121
+ + free (wcstr);
122
+ + return 1;
123
+ + }
124
+ +
125
+ + free (wcstr);
126
+ + return 0;
127
+ +}
128
+ +#endif
129
+ +
130
+ /* return 1 if we need to quote with $'...' because of non-printing chars. */
131
+ int
132
+ ansic_shouldquote (string)
133
+ @@ -278,8 +335,14 @@ ansic_shouldquote (string)
134
+ return 0;
135
+
136
+ for (s = string; c = *s; s++)
137
+ - if (ISPRINT (c) == 0)
138
+ - return 1;
139
+ + {
140
+ +#if defined (HANDLE_MULTIBYTE)
141
+ + if (is_basic (c) == 0)
142
+ + return (ansic_wshouldquote (s));
143
+ +#endif
144
+ + if (ISPRINT (c) == 0)
145
+ + return 1;
146
+ + }
147
+
148
+ return 0;
149
+ }
SOURCES/bash-4.4-param-expansion.patch ADDED
@@ -0,0 +1,73 @@
1
+ diff --git a/parse.y b/parse.y
2
+ index 9a78d0c..7df7d99 100644
3
+ --- a/parse.y
4
+ +++ b/parse.y
5
+ @@ -4993,7 +4993,8 @@ decode_prompt_string (string)
6
+ struct dstack save_dstack;
7
+ int last_exit_value, last_comsub_pid;
8
+ #if defined (PROMPT_STRING_DECODE)
9
+ - int result_size, result_index;
10
+ + size_t result_size;
11
+ + int result_index;
12
+ int c, n, i;
13
+ char *temp, octal_string[4];
14
+ struct tm *tm;
15
+ diff --git a/subst.c b/subst.c
16
+ index 9f15f0b..e5ffd03 100644
17
+ --- a/subst.c
18
+ +++ b/subst.c
19
+ @@ -644,11 +644,13 @@ unquoted_substring (substr, string)
20
+ INLINE char *
21
+ sub_append_string (source, target, indx, size)
22
+ char *source, *target;
23
+ - int *indx, *size;
24
+ + int *indx;
25
+ + size_t *size;
26
+ {
27
+ if (source)
28
+ {
29
+ - int srclen, n;
30
+ + int n;
31
+ + size_t srclen;
32
+
33
+ srclen = STRLEN (source);
34
+ if (srclen >= (int)(*size - *indx))
35
+ @@ -7676,7 +7678,7 @@ expand_word_internal (word, quoted, isexp, contains_dollar_at, expanded_somethin
36
+ char *istring;
37
+
38
+ /* The current size of the above object. */
39
+ - int istring_size;
40
+ + size_t istring_size;
41
+
42
+ /* Index into ISTRING. */
43
+ int istring_index;
44
+ diff --git a/subst.h b/subst.h
45
+ index b06e8c2..fc66faf 100644
46
+ --- a/subst.h
47
+ +++ b/subst.h
48
+ @@ -127,7 +127,7 @@ extern int do_word_assignment __P((WORD_DESC *));
49
+ of space allocated to TARGET. SOURCE can be NULL, in which
50
+ case nothing happens. Gets rid of SOURCE by free ()ing it.
51
+ Returns TARGET in case the location has changed. */
52
+ -extern char *sub_append_string __P((char *, char *, int *, int *));
53
+ +extern char *sub_append_string __P((char *, char *, int *, size_t *));
54
+
55
+ /* Append the textual representation of NUMBER to TARGET.
56
+ INDEX and SIZE are as in SUB_APPEND_STRING. */
57
+ diff --git a/y.tab.c b/y.tab.c
58
+ index d702554..31faa4a 100644
59
+ --- a/y.tab.c
60
+ +++ b/y.tab.c
61
+ @@ -7280,7 +7280,8 @@ decode_prompt_string (string)
62
+ struct dstack save_dstack;
63
+ int last_exit_value, last_comsub_pid;
64
+ #if defined (PROMPT_STRING_DECODE)
65
+ - int result_size, result_index;
66
+ + size_t result_size;
67
+ + int result_index;
68
+ int c, n, i;
69
+ char *temp, octal_string[4];
70
+ struct tm *tm;
71
+ --
72
+ 2.5.5
73
+
SOURCES/bash-4.4-pipeline-pgrp.patch ADDED
@@ -0,0 +1,17 @@
1
+ diff --git a/subst.c b/subst.c
2
+ index 1dbfb5e..049962e 100644
3
+ --- a/subst.c
4
+ +++ b/subst.c
5
+ @@ -5011,7 +5011,8 @@ process_substitute (string, open_for_read_in_child)
6
+
7
+ #if defined (JOB_CONTROL)
8
+ old_pipeline_pgrp = pipeline_pgrp;
9
+ - pipeline_pgrp = shell_pgrp;
10
+ + if (pipeline_pgrp == 0 || (subshell_environment & (SUBSHELL_PIPE|SUBSHELL_FORK|SUBSHELL_ASYNC)) == 0)
11
+ + pipeline_pgrp = shell_pgrp;
12
+ save_pipeline (1);
13
+ #endif /* JOB_CONTROL */
14
+
15
+ --
16
+ 2.9.3
17
+
SOURCES/bash-bashbug.patch ADDED
@@ -0,0 +1,56 @@
1
+ diff -up bash-4.2-rc2/doc/bash.1.bashbug bash-4.2-rc2/doc/bash.1
2
+ --- bash-4.2-rc2/doc/bash.1.bashbug 2011-01-16 21:31:39.000000000 +0100
3
+ +++ bash-4.2-rc2/doc/bash.1 2011-02-09 08:52:14.000000000 +0100
4
+ @@ -9857,7 +9857,7 @@ The latest version is always available f
5
+ .PP
6
+ Once you have determined that a bug actually exists, use the
7
+ .I bashbug
8
+ -command to submit a bug report.
9
+ +command (from the source package) to submit a bug report.
10
+ If you have a fix, you are encouraged to mail that as well!
11
+ Suggestions and `philosophical' bug reports may be mailed
12
+ to \fIbug-bash@gnu.org\fP or posted to the Usenet
13
+ @@ -9879,10 +9879,6 @@ A description of the bug behaviour
14
+ A short script or `recipe' which exercises the bug
15
+ .PD
16
+ .PP
17
+ -.I bashbug
18
+ -inserts the first three items automatically into the template
19
+ -it provides for filing a bug report.
20
+ -.PP
21
+ Comments and bug reports concerning
22
+ this manual page should be directed to
23
+ .IR chet.ramey@case.edu .
24
+ diff -up bash-4.2-rc2/doc/bashref.texi.bashbug bash-4.2-rc2/doc/bashref.texi
25
+ --- bash-4.2-rc2/doc/bashref.texi.bashbug 2011-01-16 21:31:57.000000000 +0100
26
+ +++ bash-4.2-rc2/doc/bashref.texi 2011-02-09 08:47:07.000000000 +0100
27
+ @@ -7635,7 +7635,7 @@ The latest version of Bash is always ava
28
+ @uref{ftp://ftp.gnu.org/pub/gnu/bash/}.
29
+
30
+ Once you have determined that a bug actually exists, use the
31
+ -@code{bashbug} command to submit a bug report.
32
+ +@code{bashbug} command (from the source package) to submit a bug report.
33
+ If you have a fix, you are encouraged to mail that as well!
34
+ Suggestions and `philosophical' bug reports may be mailed
35
+ to @email{bug-bash@@gnu.org} or posted to the Usenet
36
+ @@ -7657,9 +7657,6 @@ to reproduce it.
37
+ @end itemize
38
+
39
+ @noindent
40
+ -@code{bashbug} inserts the first three items automatically into
41
+ -the template it provides for filing a bug report.
42
+ -
43
+ Please send all reports concerning this manual to
44
+ @email{chet.ramey@@case.edu}.
45
+
46
+ diff -up bash-4.2-rc2/shell.c.bashbug bash-4.2-rc2/shell.c
47
+ --- bash-4.2-rc2/shell.c.bashbug 2011-01-02 22:04:51.000000000 +0100
48
+ +++ bash-4.2-rc2/shell.c 2011-02-09 08:47:07.000000000 +0100
49
+ @@ -1823,7 +1823,6 @@ show_shell_usage (fp, extra)
50
+ {
51
+ fprintf (fp, _("Type `%s -c \"help set\"' for more information about shell options.\n"), shell_name);
52
+ fprintf (fp, _("Type `%s -c help' for more information about shell builtin commands.\n"), shell_name);
53
+ - fprintf (fp, _("Use the `bashbug' command to report bugs.\n"));
54
+ }
55
+ }
56
+
SOURCES/bash-cve-2016-9401.patch ADDED
@@ -0,0 +1,28 @@
1
+ diff --git a/builtins/pushd.def b/builtins/pushd.def
2
+ index 05b7529..4eb0132 100644
3
+ --- a/builtins/pushd.def
4
+ +++ b/builtins/pushd.def
5
+ @@ -353,7 +353,7 @@ popd_builtin (list)
6
+ break;
7
+ }
8
+
9
+ - if (which > directory_list_offset || (directory_list_offset == 0 && which == 0))
10
+ + if (which > directory_list_offset || (which < -directory_list_offset) || (directory_list_offset == 0 && which == 0))
11
+ {
12
+ pushd_error (directory_list_offset, which_word ? which_word : "");
13
+ return (EXECUTION_FAILURE);
14
+ @@ -375,6 +375,11 @@ popd_builtin (list)
15
+ remove that directory from the list and shift the remainder
16
+ of the list into place. */
17
+ i = (direction == '+') ? directory_list_offset - which : which;
18
+ + if (i < 0 || i > directory_list_offset)
19
+ + {
20
+ + pushd_error (directory_list_offset, which_word ? which_word : "");
21
+ + return (EXECUTION_FAILURE);
22
+ + }
23
+ free (pushd_directory_list[i]);
24
+ directory_list_offset--;
25
+
26
+ --
27
+ 2.9.3
28
+
SOURCES/bash-infotags.patch ADDED
@@ -0,0 +1,30 @@
1
+ --- bash-3.1/doc/Makefile.in.infotags 2006-07-12 13:57:18.000000000 +0100
2
+ +++ bash-3.1/doc/Makefile.in 2006-07-12 13:58:25.000000000 +0100
3
+ @@ -69,7 +69,6 @@
4
+ TEXI2HTML = ${SUPPORT_SRCDIR}/texi2html
5
+ MAN2HTML = ${BUILD_DIR}/support/man2html
6
+ HTMLPOST = ${srcdir}/htmlpost.sh
7
+ -INFOPOST = ${srcdir}/infopost.sh
8
+ QUIETPS = #set this to -q to shut up dvips
9
+ PAPERSIZE = letter # change to a4 for A4-size paper
10
+ PSDPI = 600 # could be 300 if you like
11
+ @@ -146,7 +145,7 @@
12
+
13
+ PSFILES = bash.ps bashbug.ps article.ps builtins.ps rbash.ps
14
+ DVIFILES = bashref.dvi bashref.ps
15
+ -INFOFILES = bashref.info
16
+ +INFOFILES = bashref.info bash.info
17
+ MAN0FILES = bash.0 bashbug.0 builtins.0 rbash.0
18
+ HTMLFILES = bashref.html bash.html
19
+ PDFFILES = bash.pdf bashref.pdf article.pdf rose94.pdf
20
+ @@ -167,8 +166,8 @@
21
+ bashref.html: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
22
+ $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/bashref.texi
23
+
24
+ -bash.info: bashref.info
25
+ - ${SHELL} ${INFOPOST} < $(srcdir)/bashref.info > $@ ; \
26
+ +bash.info: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
27
+ + $(MAKEINFO) --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi -o $@
28
+
29
+ bash.txt: bash.1
30
+ bash.ps: bash.1
SOURCES/bash-requires.patch ADDED
@@ -0,0 +1,311 @@
1
+ diff -up bash-4.1/builtins.h.requires bash-4.1/builtins.h
2
+ --- bash-4.1/builtins.h.requires 2009-01-04 20:32:23.000000000 +0100
3
+ +++ bash-4.1/builtins.h 2010-08-02 17:42:41.000000000 +0200
4
+ @@ -41,6 +41,8 @@
5
+ #define SPECIAL_BUILTIN 0x08 /* This is a Posix `special' builtin. */
6
+ #define ASSIGNMENT_BUILTIN 0x10 /* This builtin takes assignment statements. */
7
+ #define POSIX_BUILTIN 0x20 /* This builtins is special in the Posix command search order. */
8
+ +#define REQUIRES_BUILTIN 0x40 /* This builtin requires other files. */
9
+ +
10
+
11
+ #define BASE_INDENT 4
12
+
13
+ diff -up bash-4.1/builtins/mkbuiltins.c.requires bash-4.1/builtins/mkbuiltins.c
14
+ --- bash-4.1/builtins/mkbuiltins.c.requires 2009-01-04 20:32:23.000000000 +0100
15
+ +++ bash-4.1/builtins/mkbuiltins.c 2010-08-02 17:42:41.000000000 +0200
16
+ @@ -69,9 +69,15 @@ extern char *strcpy ();
17
+ #define whitespace(c) (((c) == ' ') || ((c) == '\t'))
18
+
19
+ /* Flag values that builtins can have. */
20
+ +/* These flags are for the C code generator,
21
+ + the C which is produced (./builtin.c)
22
+ + includes the flags definitions found
23
+ + in ../builtins.h */
24
+ #define BUILTIN_FLAG_SPECIAL 0x01
25
+ #define BUILTIN_FLAG_ASSIGNMENT 0x02
26
+ #define BUILTIN_FLAG_POSIX_BUILTIN 0x04
27
+ +#define BUILTIN_FLAG_REQUIRES 0x08
28
+ +
29
+
30
+ #define BASE_INDENT 4
31
+
32
+ @@ -163,10 +169,18 @@ char *posix_builtins[] =
33
+ (char *)NULL
34
+ };
35
+
36
+ +/* The builtin commands that cause requirements on other files. */
37
+ +static char *requires_builtins[] =
38
+ +{
39
+ + ".", "command", "exec", "source", "inlib",
40
+ + (char *)NULL
41
+ +};
42
+ +
43
+ /* Forward declarations. */
44
+ static int is_special_builtin ();
45
+ static int is_assignment_builtin ();
46
+ static int is_posix_builtin ();
47
+ +static int is_requires_builtin ();
48
+
49
+ #if !defined (HAVE_RENAME)
50
+ static int rename ();
51
+ @@ -812,6 +826,9 @@ builtin_handler (self, defs, arg)
52
+ new->flags |= BUILTIN_FLAG_ASSIGNMENT;
53
+ if (is_posix_builtin (name))
54
+ new->flags |= BUILTIN_FLAG_POSIX_BUILTIN;
55
+ + if (is_requires_builtin (name))
56
+ + new->flags |= BUILTIN_FLAG_REQUIRES;
57
+ +
58
+
59
+ array_add ((char *)new, defs->builtins);
60
+ building_builtin = 1;
61
+ @@ -1229,11 +1246,12 @@ write_builtins (defs, structfile, extern
62
+ else
63
+ fprintf (structfile, "(sh_builtin_func_t *)0x0, ");
64
+
65
+ - fprintf (structfile, "%s%s%s%s, %s_doc,\n",
66
+ + fprintf (structfile, "%s%s%s%s%s, %s_doc,\n",
67
+ "BUILTIN_ENABLED | STATIC_BUILTIN",
68
+ (builtin->flags & BUILTIN_FLAG_SPECIAL) ? " | SPECIAL_BUILTIN" : "",
69
+ (builtin->flags & BUILTIN_FLAG_ASSIGNMENT) ? " | ASSIGNMENT_BUILTIN" : "",
70
+ (builtin->flags & BUILTIN_FLAG_POSIX_BUILTIN) ? " | POSIX_BUILTIN" : "",
71
+ + (builtin->flags & BUILTIN_FLAG_REQUIRES) ? " | REQUIRES_BUILTIN" : "",
72
+ document_name (builtin));
73
+
74
+ fprintf
75
+ @@ -1581,6 +1599,13 @@ is_posix_builtin (name)
76
+ return (_find_in_table (name, posix_builtins));
77
+ }
78
+
79
+ +static int
80
+ +is_requires_builtin (name)
81
+ + char *name;
82
+ +{
83
+ + return (_find_in_table (name, requires_builtins));
84
+ +}
85
+ +
86
+ #if !defined (HAVE_RENAME)
87
+ static int
88
+ rename (from, to)
89
+ diff -up bash-4.1/doc/bash.1.requires bash-4.1/doc/bash.1
90
+ --- bash-4.1/doc/bash.1.requires 2010-08-02 17:42:41.000000000 +0200
91
+ +++ bash-4.1/doc/bash.1 2010-08-02 18:09:27.000000000 +0200
92
+ @@ -231,6 +231,14 @@ The shell becomes restricted (see
93
+ .B "RESTRICTED SHELL"
94
+ below).
95
+ .TP
96
+ +.B \-\-rpm-requires
97
+ +Produce the list of files that are required for the
98
+ +shell script to run. This implies '-n' and is subject
99
+ +to the same limitations as compile time error checking checking;
100
+ +Command substitutions, Conditional expressions and
101
+ +.BR eval
102
+ +builtin are not parsed so some dependencies may be missed.
103
+ +.TP
104
+ .B \-\-verbose
105
+ Equivalent to \fB\-v\fP.
106
+ .TP
107
+ diff -up bash-4.1/doc/bashref.texi.requires bash-4.1/doc/bashref.texi
108
+ --- bash-4.1/doc/bashref.texi.requires 2010-08-02 17:42:41.000000000 +0200
109
+ +++ bash-4.1/doc/bashref.texi 2010-08-02 18:11:58.000000000 +0200
110
+ @@ -5343,6 +5343,13 @@ standard. @xref{Bash POSIX Mode}, for a
111
+ @item --restricted
112
+ Make the shell a restricted shell (@pxref{The Restricted Shell}).
113
+
114
+ +@item --rpm-requires
115
+ +Produce the list of files that are required for the
116
+ +shell script to run. This implies '-n' and is subject
117
+ +to the same limitations as compile time error checking checking;
118
+ +Command substitutions, Conditional expressions and @command{eval}
119
+ +are not parsed so some dependencies may be missed.
120
+ +
121
+ @item --verbose
122
+ Equivalent to @option{-v}. Print shell input lines as they're read.
123
+
124
+ diff -up bash-4.1/eval.c.requires bash-4.1/eval.c
125
+ --- bash-4.1/eval.c.requires 2009-01-04 20:32:26.000000000 +0100
126
+ +++ bash-4.1/eval.c 2010-08-02 17:42:41.000000000 +0200
127
+ @@ -53,6 +53,7 @@ extern int last_command_exit_value, stdi
128
+ extern int need_here_doc;
129
+ extern int current_command_number, current_command_line_count, line_number;
130
+ extern int expand_aliases;
131
+ +extern int rpm_requires;
132
+
133
+ static void send_pwd_to_eterm __P((void));
134
+ static sighandler alrm_catcher __P((int));
135
+ @@ -136,7 +137,7 @@ reader_loop ()
136
+
137
+ if (read_command () == 0)
138
+ {
139
+ - if (interactive_shell == 0 && read_but_dont_execute)
140
+ + if (interactive_shell == 0 && (read_but_dont_execute && !rpm_requires))
141
+ {
142
+ last_command_exit_value = EXECUTION_SUCCESS;
143
+ dispose_command (global_command);
144
+ diff -up bash-4.1/execute_cmd.c.requires bash-4.1/execute_cmd.c
145
+ --- bash-4.1/execute_cmd.c.requires 2010-08-02 17:42:41.000000000 +0200
146
+ +++ bash-4.1/execute_cmd.c 2010-08-02 17:42:41.000000000 +0200
147
+ @@ -503,6 +503,8 @@ async_redirect_stdin ()
148
+
149
+ #define DESCRIBE_PID(pid) do { if (interactive) describe_pid (pid); } while (0)
150
+
151
+ +extern int rpm_requires;
152
+ +
153
+ /* Execute the command passed in COMMAND, perhaps doing it asynchrounously.
154
+ COMMAND is exactly what read_command () places into GLOBAL_COMMAND.
155
+ ASYNCHROUNOUS, if non-zero, says to do this command in the background.
156
+ @@ -534,7 +536,13 @@ execute_command_internal (command, async
157
+ #else
158
+ if (breaking || continuing)
159
+ return (last_command_exit_value);
160
+ - if (command == 0 || read_but_dont_execute)
161
+ + if (command == 0 || (read_but_dont_execute && !rpm_requires))
162
+ + return (EXECUTION_SUCCESS);
163
+ + if (rpm_requires && command->type == cm_function_def)
164
+ + return last_command_exit_value =
165
+ + execute_intern_function (command->value.Function_def->name,
166
+ + command->value.Function_def->command);
167
+ + if (read_but_dont_execute)
168
+ return (EXECUTION_SUCCESS);
169
+ #endif
170
+
171
+ @@ -5066,7 +5074,7 @@ execute_intern_function (name, function)
172
+
173
+ if (check_identifier (name, posixly_correct) == 0)
174
+ {
175
+ - if (posixly_correct && interactive_shell == 0)
176
+ + if (posixly_correct && interactive_shell == 0 && rpm_requires == 0)
177
+ {
178
+ last_command_exit_value = EX_BADUSAGE;
179
+ jump_to_top_level (ERREXIT);
180
+ diff -up bash-4.1/execute_cmd.h.requires bash-4.1/execute_cmd.h
181
+ --- bash-4.1/execute_cmd.h.requires 2009-01-16 22:20:15.000000000 +0100
182
+ +++ bash-4.1/execute_cmd.h 2010-08-02 17:42:41.000000000 +0200
183
+ @@ -22,6 +22,8 @@
184
+ #define _EXECUTE_CMD_H_
185
+
186
+ #include "stdc.h"
187
+ +#include "variables.h"
188
+ +#include "command.h"
189
+
190
+ extern struct fd_bitmap *new_fd_bitmap __P((int));
191
+ extern void dispose_fd_bitmap __P((struct fd_bitmap *));
192
+ diff -up bash-4.1/make_cmd.c.requires bash-4.1/make_cmd.c
193
+ --- bash-4.1/make_cmd.c.requires 2009-09-11 23:26:12.000000000 +0200
194
+ +++ bash-4.1/make_cmd.c 2010-08-02 17:42:41.000000000 +0200
195
+ @@ -42,11 +42,15 @@
196
+ #include "flags.h"
197
+ #include "make_cmd.h"
198
+ #include "dispose_cmd.h"
199
+ +#include "execute_cmd.h"
200
+ #include "variables.h"
201
+ #include "subst.h"
202
+ #include "input.h"
203
+ #include "ocache.h"
204
+ #include "externs.h"
205
+ +#include "builtins.h"
206
+ +
207
+ +#include "builtins/common.h"
208
+
209
+ #if defined (JOB_CONTROL)
210
+ #include "jobs.h"
211
+ @@ -56,6 +60,10 @@
212
+
213
+ extern int line_number, current_command_line_count, parser_state;
214
+ extern int last_command_exit_value;
215
+ +extern int rpm_requires;
216
+ +
217
+ +static char *alphabet_set = "abcdefghijklmnopqrstuvwxyz"
218
+ + "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
219
+
220
+ /* Object caching */
221
+ sh_obj_cache_t wdcache = {0, 0, 0};
222
+ @@ -820,6 +828,27 @@ make_coproc_command (name, command)
223
+ return (make_command (cm_coproc, (SIMPLE_COM *)temp));
224
+ }
225
+
226
+ +static void
227
+ +output_requirement (deptype, filename)
228
+ +const char *deptype;
229
+ +char *filename;
230
+ +{
231
+ + if (strchr(filename, '$') || (filename[0] != '/' && strchr(filename, '/')))
232
+ + return;
233
+ +
234
+ + /*
235
+ + if the executable is called via variable substitution we can
236
+ + not dermine what it is at compile time.
237
+ +
238
+ + if the executable consists only of characters not in the
239
+ + alphabet we do not consider it a dependency just an artifact
240
+ + of shell parsing (ex "exec < ${infile}").
241
+ + */
242
+ +
243
+ + if (strpbrk(filename, alphabet_set))
244
+ + printf ("%s(%s)\n", deptype, filename);
245
+ +}
246
+ +
247
+ /* Reverse the word list and redirection list in the simple command
248
+ has just been parsed. It seems simpler to do this here the one
249
+ time then by any other method that I can think of. */
250
+ @@ -837,6 +866,27 @@ clean_simple_command (command)
251
+ REVERSE_LIST (command->value.Simple->redirects, REDIRECT *);
252
+ }
253
+
254
+ + if (rpm_requires && command->value.Simple->words)
255
+ + {
256
+ + char *cmd0;
257
+ + char *cmd1;
258
+ + struct builtin *b;
259
+ +
260
+ + cmd0 = command->value.Simple->words->word->word;
261
+ + b = builtin_address_internal (cmd0, 0);
262
+ + cmd1 = 0;
263
+ + if (command->value.Simple->words->next)
264
+ + cmd1 = command->value.Simple->words->next->word->word;
265
+ +
266
+ + if (b) {
267
+ + if ( (b->flags & REQUIRES_BUILTIN) && cmd1)
268
+ + output_requirement ("executable", cmd1);
269
+ + } else {
270
+ + if (!assignment(cmd0, 0))
271
+ + output_requirement (find_function(cmd0) ? "function" : "executable", cmd0);
272
+ + }
273
+ + } /*rpm_requires*/
274
+ +
275
+ parser_state &= ~PST_REDIRLIST;
276
+ return (command);
277
+ }
278
+ diff -up bash-4.1/shell.c.requires bash-4.1/shell.c
279
+ --- bash-4.1/shell.c.requires 2010-08-02 17:42:41.000000000 +0200
280
+ +++ bash-4.1/shell.c 2010-08-02 17:42:41.000000000 +0200
281
+ @@ -193,6 +193,9 @@ int have_devfd = 0;
282
+ /* The name of the .(shell)rc file. */
283
+ static char *bashrc_file = "~/.bashrc";
284
+
285
+ +/* Non-zero if we are finding the scripts requirements. */
286
+ +int rpm_requires;
287
+ +
288
+ /* Non-zero means to act more like the Bourne shell on startup. */
289
+ static int act_like_sh;
290
+
291
+ @@ -251,6 +254,7 @@ static const struct {
292
+ { "posix", Int, &posixly_correct, (char **)0x0 },
293
+ { "protected", Int, &protected_mode, (char **)0x0 },
294
+ { "rcfile", Charp, (int *)0x0, &bashrc_file },
295
+ + { "rpm-requires", Int, &rpm_requires, (char **)0x0 },
296
+ #if defined (RESTRICTED_SHELL)
297
+ { "restricted", Int, &restricted, (char **)0x0 },
298
+ #endif
299
+ @@ -485,6 +489,12 @@ main (argc, argv, env)
300
+ if (dump_translatable_strings)
301
+ read_but_dont_execute = 1;
302
+
303
+ + if (rpm_requires)
304
+ + {
305
+ + read_but_dont_execute = 1;
306
+ + initialize_shell_builtins ();
307
+ + }
308
+ +
309
+ if (running_setuid && privileged_mode == 0)
310
+ disable_priv_mode ();
311
+
SOURCES/bash-setlocale.patch ADDED
@@ -0,0 +1,10 @@
1
+ --- bash-3.0/builtins/setattr.def.setlocale 2005-08-08 12:22:42.000000000 +0100
2
+ +++ bash-3.0/builtins/setattr.def 2005-08-08 12:25:16.000000000 +0100
3
+ @@ -423,4 +423,7 @@
4
+
5
+ if (var && (exported_p (var) || (attribute & att_exported)))
6
+ array_needs_making++; /* XXX */
7
+ +
8
+ + if (var)
9
+ + stupidly_hack_special_variables (name);
10
+ }
SOURCES/bash-tty-tests.patch ADDED
@@ -0,0 +1,54 @@
1
+ diff -up bash-4.2-rc2/tests/exec.right.tty_tests bash-4.2-rc2/tests/exec.right
2
+ --- bash-4.2-rc2/tests/exec.right.tty_tests 2011-02-09 10:42:48.000000000 +0100
3
+ +++ bash-4.2-rc2/tests/exec.right 2011-02-09 10:42:59.000000000 +0100
4
+ @@ -50,7 +50,6 @@ this is ohio-state
5
+ 0
6
+ 1
7
+ testb
8
+ -expand_aliases on
9
+ 1
10
+ 1
11
+ 1
12
+ diff -up bash-4.2-rc2/tests/execscript.tty_tests bash-4.2-rc2/tests/execscript
13
+ --- bash-4.2-rc2/tests/execscript.tty_tests 2010-12-27 22:01:02.000000000 +0100
14
+ +++ bash-4.2-rc2/tests/execscript 2011-02-09 10:42:34.000000000 +0100
15
+ @@ -107,8 +107,6 @@ ${THIS_SH} ./exec6.sub
16
+ # checks for properly deciding what constitutes an executable file
17
+ ${THIS_SH} ./exec7.sub
18
+
19
+ -${THIS_SH} -i ./exec8.sub
20
+ -
21
+ ${THIS_SH} ./exec9.sub
22
+
23
+ true | `echo true` &
24
+ diff -up bash-4.2-rc2/tests/read.right.tty_tests bash-4.2-rc2/tests/read.right
25
+ --- bash-4.2-rc2/tests/read.right.tty_tests 2010-12-21 16:49:00.000000000 +0100
26
+ +++ bash-4.2-rc2/tests/read.right 2011-02-09 10:42:34.000000000 +0100
27
+ @@ -33,14 +33,6 @@ a = abcdefg
28
+ a = xyz
29
+ a = -xyz 123-
30
+ a = abc
31
+ -timeout 1: ok
32
+ -
33
+ -timeout 2: ok
34
+ -
35
+ -./read2.sub: line 23: read: -3: invalid timeout specification
36
+ -1
37
+ -
38
+ -abcde
39
+ ./read3.sub: line 4: read: -1: invalid number
40
+ abc
41
+ ab
42
+ diff -up bash-4.2-rc2/tests/read.tests.tty_tests bash-4.2-rc2/tests/read.tests
43
+ --- bash-4.2-rc2/tests/read.tests.tty_tests 2008-09-06 19:09:11.000000000 +0200
44
+ +++ bash-4.2-rc2/tests/read.tests 2011-02-09 10:42:34.000000000 +0100
45
+ @@ -82,9 +82,6 @@ echo " foo" | { IFS=$':' ; read line; re
46
+ # test read -d delim behavior
47
+ ${THIS_SH} ./read1.sub
48
+
49
+ -# test read -t timeout behavior
50
+ -${THIS_SH} ./read2.sub
51
+ -
52
+ # test read -n nchars behavior
53
+ ${THIS_SH} ./read3.sub
54
+
file added
+78
SOURCES/bash42-001 ADDED
@@ -0,0 +1,78 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-001
6
+
7
+ Bug-Reported-by: Juergen Daubert <jue@jue.li>
8
+ Bug-Reference-ID: <20110214175132.GA19813@jue.netz>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00125.html
10
+
11
+ Bug-Description:
12
+
13
+ When running in Posix mode, bash does not correctly expand the right-hand
14
+ side of a double-quoted word expansion containing single quotes.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/subst.c 2011-01-02 16:12:51.000000000 -0500
19
+ --- subst.c 2011-02-19 00:00:00.000000000 -0500
20
+ ***************
21
+ *** 1380,1387 ****
22
+
23
+ /* The handling of dolbrace_state needs to agree with the code in parse.y:
24
+ ! parse_matched_pair() */
25
+ ! dolbrace_state = 0;
26
+ ! if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
27
+ ! dolbrace_state = (flags & SX_POSIXEXP) ? DOLBRACE_QUOTE : DOLBRACE_PARAM;
28
+
29
+ i = *sindex;
30
+ --- 1380,1389 ----
31
+
32
+ /* The handling of dolbrace_state needs to agree with the code in parse.y:
33
+ ! parse_matched_pair(). The different initial value is to handle the
34
+ ! case where this function is called to parse the word in
35
+ ! ${param op word} (SX_WORD). */
36
+ ! dolbrace_state = (flags & SX_WORD) ? DOLBRACE_WORD : DOLBRACE_PARAM;
37
+ ! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && (flags & SX_POSIXEXP))
38
+ ! dolbrace_state = DOLBRACE_QUOTE;
39
+
40
+ i = *sindex;
41
+ ***************
42
+ *** 7177,7181 ****
43
+ /* Extract the contents of the ${ ... } expansion
44
+ according to the Posix.2 rules. */
45
+ ! value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#') ? SX_POSIXEXP : 0);
46
+ if (string[sindex] == RBRACE)
47
+ sindex++;
48
+ --- 7181,7185 ----
49
+ /* Extract the contents of the ${ ... } expansion
50
+ according to the Posix.2 rules. */
51
+ ! value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#' || c =='/' || c == '^' || c == ',' || c ==':') ? SX_POSIXEXP|SX_WORD : SX_WORD);
52
+ if (string[sindex] == RBRACE)
53
+ sindex++;
54
+ *** ../bash-4.2-patched/subst.h 2010-12-02 20:21:29.000000000 -0500
55
+ --- subst.h 2011-02-16 21:12:09.000000000 -0500
56
+ ***************
57
+ *** 57,60 ****
58
+ --- 57,61 ----
59
+ #define SX_ARITHSUB 0x0080 /* extracting $(( ... )) (currently unused) */
60
+ #define SX_POSIXEXP 0x0100 /* extracting new Posix pattern removal expansions in extract_dollar_brace_string */
61
+ + #define SX_WORD 0x0200 /* extracting word in ${param op word} */
62
+
63
+ /* Remove backslashes which are quoting backquotes from STRING. Modifies
64
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
65
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
66
+ ***************
67
+ *** 26,30 ****
68
+ looks for to find the patch level (for the sccs version string). */
69
+
70
+ ! #define PATCHLEVEL 0
71
+
72
+ #endif /* _PATCHLEVEL_H_ */
73
+ --- 26,30 ----
74
+ looks for to find the patch level (for the sccs version string). */
75
+
76
+ ! #define PATCHLEVEL 1
77
+
78
+ #endif /* _PATCHLEVEL_H_ */
file added
+60
SOURCES/bash42-002 ADDED
@@ -0,0 +1,60 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-002
6
+
7
+ Bug-Reported-by: Clark J. Wang <dearvoid@gmail.com>
8
+ Bug-Reference-ID: <AANLkTimGbW7aC4E5infXP6ku5WPci4t=xVc+L1SyHqrD@mail.gmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html
10
+
11
+ Bug-Description:
12
+
13
+ The readline vi-mode `cc', `dd', and `yy' commands failed to modify the
14
+ entire line.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/lib/readline/vi_mode.c 2010-11-20 19:51:39.000000000 -0500
19
+ --- lib/readline/vi_mode.c 2011-02-17 20:24:25.000000000 -0500
20
+ ***************
21
+ *** 1115,1119 ****
22
+ _rl_vi_last_motion = c;
23
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
24
+ ! return (0);
25
+ }
26
+ #if defined (READLINE_CALLBACKS)
27
+ --- 1115,1119 ----
28
+ _rl_vi_last_motion = c;
29
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
30
+ ! return (vidomove_dispatch (m));
31
+ }
32
+ #if defined (READLINE_CALLBACKS)
33
+ *** ../bash-4.2-patched/lib/readline/callback.c 2010-06-06 12:18:58.000000000 -0400
34
+ --- lib/readline/callback.c 2011-02-17 20:43:28.000000000 -0500
35
+ ***************
36
+ *** 149,152 ****
37
+ --- 149,155 ----
38
+ /* Should handle everything, including cleanup, numeric arguments,
39
+ and turning off RL_STATE_VIMOTION */
40
+ + if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
41
+ + _rl_internal_char_cleanup ();
42
+ +
43
+ return;
44
+ }
45
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
46
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
47
+ ***************
48
+ *** 26,30 ****
49
+ looks for to find the patch level (for the sccs version string). */
50
+
51
+ ! #define PATCHLEVEL 1
52
+
53
+ #endif /* _PATCHLEVEL_H_ */
54
+ --- 26,30 ----
55
+ looks for to find the patch level (for the sccs version string). */
56
+
57
+ ! #define PATCHLEVEL 2
58
+
59
+ #endif /* _PATCHLEVEL_H_ */
60
+
file added
+318
SOURCES/bash42-003 ADDED
@@ -0,0 +1,318 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-003
6
+
7
+ Bug-Reported-by: Clark J. Wang <dearvoid@gmail.com>
8
+ Bug-Reference-ID: <AANLkTikZ_rVV-frR8Fh0PzhXnMKnm5XsUR-F3qtPPs5G@mail.gmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00136.html
10
+
11
+ Bug-Description:
12
+
13
+ When using the pattern replacement and pattern removal word expansions, bash
14
+ miscalculates the possible match length in the presence of an unescaped left
15
+ bracket without a closing right bracket, resulting in a failure to match
16
+ the pattern.
17
+
18
+ Patch (apply with `patch -p0'):
19
+
20
+ *** ../bash-4.2-patched/lib/glob/gmisc.c 2011-02-05 16:11:17.000000000 -0500
21
+ --- lib/glob/gmisc.c 2011-02-18 23:53:42.000000000 -0500
22
+ ***************
23
+ *** 78,83 ****
24
+ size_t wmax;
25
+ {
26
+ ! wchar_t wc, *wbrack;
27
+ ! int matlen, t, in_cclass, in_collsym, in_equiv;
28
+
29
+ if (*wpat == 0)
30
+ --- 78,83 ----
31
+ size_t wmax;
32
+ {
33
+ ! wchar_t wc;
34
+ ! int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
35
+
36
+ if (*wpat == 0)
37
+ ***************
38
+ *** 119,123 ****
39
+ case L'[':
40
+ /* scan for ending `]', skipping over embedded [:...:] */
41
+ ! wbrack = wpat;
42
+ wc = *wpat++;
43
+ do
44
+ --- 119,123 ----
45
+ case L'[':
46
+ /* scan for ending `]', skipping over embedded [:...:] */
47
+ ! bracklen = 1;
48
+ wc = *wpat++;
49
+ do
50
+ ***************
51
+ *** 125,140 ****
52
+ if (wc == 0)
53
+ {
54
+ ! matlen += wpat - wbrack - 1; /* incremented below */
55
+ ! break;
56
+ }
57
+ else if (wc == L'\\')
58
+ {
59
+ ! wc = *wpat++;
60
+ ! if (*wpat == 0)
61
+ ! break;
62
+ }
63
+ else if (wc == L'[' && *wpat == L':') /* character class */
64
+ {
65
+ wpat++;
66
+ in_cclass = 1;
67
+ }
68
+ --- 125,148 ----
69
+ if (wc == 0)
70
+ {
71
+ ! wpat--; /* back up to NUL */
72
+ ! matlen += bracklen;
73
+ ! goto bad_bracket;
74
+ }
75
+ else if (wc == L'\\')
76
+ {
77
+ ! /* *wpat == backslash-escaped character */
78
+ ! bracklen++;
79
+ ! /* If the backslash or backslash-escape ends the string,
80
+ ! bail. The ++wpat skips over the backslash escape */
81
+ ! if (*wpat == 0 || *++wpat == 0)
82
+ ! {
83
+ ! matlen += bracklen;
84
+ ! goto bad_bracket;
85
+ ! }
86
+ }
87
+ else if (wc == L'[' && *wpat == L':') /* character class */
88
+ {
89
+ wpat++;
90
+ + bracklen++;
91
+ in_cclass = 1;
92
+ }
93
+ ***************
94
+ *** 142,145 ****
95
+ --- 150,154 ----
96
+ {
97
+ wpat++;
98
+ + bracklen++;
99
+ in_cclass = 0;
100
+ }
101
+ ***************
102
+ *** 147,152 ****
103
+ {
104
+ wpat++;
105
+ if (*wpat == L']') /* right bracket can appear as collating symbol */
106
+ ! wpat++;
107
+ in_collsym = 1;
108
+ }
109
+ --- 156,165 ----
110
+ {
111
+ wpat++;
112
+ + bracklen++;
113
+ if (*wpat == L']') /* right bracket can appear as collating symbol */
114
+ ! {
115
+ ! wpat++;
116
+ ! bracklen++;
117
+ ! }
118
+ in_collsym = 1;
119
+ }
120
+ ***************
121
+ *** 154,157 ****
122
+ --- 167,171 ----
123
+ {
124
+ wpat++;
125
+ + bracklen++;
126
+ in_collsym = 0;
127
+ }
128
+ ***************
129
+ *** 159,164 ****
130
+ {
131
+ wpat++;
132
+ if (*wpat == L']') /* right bracket can appear as equivalence class */
133
+ ! wpat++;
134
+ in_equiv = 1;
135
+ }
136
+ --- 173,182 ----
137
+ {
138
+ wpat++;
139
+ + bracklen++;
140
+ if (*wpat == L']') /* right bracket can appear as equivalence class */
141
+ ! {
142
+ ! wpat++;
143
+ ! bracklen++;
144
+ ! }
145
+ in_equiv = 1;
146
+ }
147
+ ***************
148
+ *** 166,174 ****
149
+ --- 184,196 ----
150
+ {
151
+ wpat++;
152
+ + bracklen++;
153
+ in_equiv = 0;
154
+ }
155
+ + else
156
+ + bracklen++;
157
+ }
158
+ while ((wc = *wpat++) != L']');
159
+ matlen++; /* bracket expression can only match one char */
160
+ + bad_bracket:
161
+ break;
162
+ }
163
+ ***************
164
+ *** 214,219 ****
165
+ size_t max;
166
+ {
167
+ ! char c, *brack;
168
+ ! int matlen, t, in_cclass, in_collsym, in_equiv;
169
+
170
+ if (*pat == 0)
171
+ --- 236,241 ----
172
+ size_t max;
173
+ {
174
+ ! char c;
175
+ ! int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
176
+
177
+ if (*pat == 0)
178
+ ***************
179
+ *** 255,259 ****
180
+ case '[':
181
+ /* scan for ending `]', skipping over embedded [:...:] */
182
+ ! brack = pat;
183
+ c = *pat++;
184
+ do
185
+ --- 277,281 ----
186
+ case '[':
187
+ /* scan for ending `]', skipping over embedded [:...:] */
188
+ ! bracklen = 1;
189
+ c = *pat++;
190
+ do
191
+ ***************
192
+ *** 261,276 ****
193
+ if (c == 0)
194
+ {
195
+ ! matlen += pat - brack - 1; /* incremented below */
196
+ ! break;
197
+ }
198
+ else if (c == '\\')
199
+ {
200
+ ! c = *pat++;
201
+ ! if (*pat == 0)
202
+ ! break;
203
+ }
204
+ else if (c == '[' && *pat == ':') /* character class */
205
+ {
206
+ pat++;
207
+ in_cclass = 1;
208
+ }
209
+ --- 283,306 ----
210
+ if (c == 0)
211
+ {
212
+ ! pat--; /* back up to NUL */
213
+ ! matlen += bracklen;
214
+ ! goto bad_bracket;
215
+ }
216
+ else if (c == '\\')
217
+ {
218
+ ! /* *pat == backslash-escaped character */
219
+ ! bracklen++;
220
+ ! /* If the backslash or backslash-escape ends the string,
221
+ ! bail. The ++pat skips over the backslash escape */
222
+ ! if (*pat == 0 || *++pat == 0)
223
+ ! {
224
+ ! matlen += bracklen;
225
+ ! goto bad_bracket;
226
+ ! }
227
+ }
228
+ else if (c == '[' && *pat == ':') /* character class */
229
+ {
230
+ pat++;
231
+ + bracklen++;
232
+ in_cclass = 1;
233
+ }
234
+ ***************
235
+ *** 278,281 ****
236
+ --- 308,312 ----
237
+ {
238
+ pat++;
239
+ + bracklen++;
240
+ in_cclass = 0;
241
+ }
242
+ ***************
243
+ *** 283,288 ****
244
+ {
245
+ pat++;
246
+ if (*pat == ']') /* right bracket can appear as collating symbol */
247
+ ! pat++;
248
+ in_collsym = 1;
249
+ }
250
+ --- 314,323 ----
251
+ {
252
+ pat++;
253
+ + bracklen++;
254
+ if (*pat == ']') /* right bracket can appear as collating symbol */
255
+ ! {
256
+ ! pat++;
257
+ ! bracklen++;
258
+ ! }
259
+ in_collsym = 1;
260
+ }
261
+ ***************
262
+ *** 290,293 ****
263
+ --- 325,329 ----
264
+ {
265
+ pat++;
266
+ + bracklen++;
267
+ in_collsym = 0;
268
+ }
269
+ ***************
270
+ *** 295,300 ****
271
+ {
272
+ pat++;
273
+ if (*pat == ']') /* right bracket can appear as equivalence class */
274
+ ! pat++;
275
+ in_equiv = 1;
276
+ }
277
+ --- 331,340 ----
278
+ {
279
+ pat++;
280
+ + bracklen++;
281
+ if (*pat == ']') /* right bracket can appear as equivalence class */
282
+ ! {
283
+ ! pat++;
284
+ ! bracklen++;
285
+ ! }
286
+ in_equiv = 1;
287
+ }
288
+ ***************
289
+ *** 302,310 ****
290
+ --- 342,354 ----
291
+ {
292
+ pat++;
293
+ + bracklen++;
294
+ in_equiv = 0;
295
+ }
296
+ + else
297
+ + bracklen++;
298
+ }
299
+ while ((c = *pat++) != ']');
300
+ matlen++; /* bracket expression can only match one char */
301
+ + bad_bracket:
302
+ break;
303
+ }
304
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
305
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
306
+ ***************
307
+ *** 26,30 ****
308
+ looks for to find the patch level (for the sccs version string). */
309
+
310
+ ! #define PATCHLEVEL 2
311
+
312
+ #endif /* _PATCHLEVEL_H_ */
313
+ --- 26,30 ----
314
+ looks for to find the patch level (for the sccs version string). */
315
+
316
+ ! #define PATCHLEVEL 3
317
+
318
+ #endif /* _PATCHLEVEL_H_ */
file added
+53
SOURCES/bash42-004 ADDED
@@ -0,0 +1,53 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-004
6
+
7
+ Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
8
+ Bug-Reference-ID: <201102182106.17834.vapier@gentoo.org>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00222.html
10
+
11
+ Bug-Description:
12
+
13
+ When used in contexts where word splitting and quote removal were not
14
+ performed, such as pattern removal or pattern substitution, empty strings
15
+ (either literal or resulting from quoted variables that were unset or
16
+ null) were not matched correctly, resulting in failure.
17
+
18
+ Patch (apply with `patch -p0'):
19
+
20
+ *** ../bash-4.2-patched/subst.c 2011-01-02 16:12:51.000000000 -0500
21
+ --- subst.c 2011-02-18 22:30:13.000000000 -0500
22
+ ***************
23
+ *** 3373,3379 ****
24
+ if (string == 0 || *string == '\0')
25
+ return (WORD_LIST *)NULL;
26
+
27
+ ! td.flags = 0;
28
+ td.word = string;
29
+ tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
30
+ return (tresult);
31
+ --- 3373,3379 ----
32
+ if (string == 0 || *string == '\0')
33
+ return (WORD_LIST *)NULL;
34
+
35
+ ! td.flags = W_NOSPLIT2; /* no splitting, remove "" and '' */
36
+ td.word = string;
37
+ tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
38
+ return (tresult);
39
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
40
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
41
+ ***************
42
+ *** 26,30 ****
43
+ looks for to find the patch level (for the sccs version string). */
44
+
45
+ ! #define PATCHLEVEL 3
46
+
47
+ #endif /* _PATCHLEVEL_H_ */
48
+ --- 26,30 ----
49
+ looks for to find the patch level (for the sccs version string). */
50
+
51
+ ! #define PATCHLEVEL 4
52
+
53
+ #endif /* _PATCHLEVEL_H_ */
file added
+131
SOURCES/bash42-005 ADDED
@@ -0,0 +1,131 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-005
6
+
7
+ Bug-Reported-by: Dennis Williamson <dennistwilliamson@gmail.com>
8
+ Bug-Reference-ID: <AANLkTikDbEV5rnbPc0zOfmZfBcg0xGetzLLzK+KjRiNa@mail.gmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00147.html
10
+
11
+ Bug-Description:
12
+
13
+ Systems that use tzset() to set the local timezone require the TZ variable
14
+ to be in the environment. Bash must make sure the environment has been
15
+ modified with any updated value for TZ before calling tzset(). This
16
+ affects prompt string expansions and the `%T' printf conversion specification
17
+ on systems that do not allow bash to supply a replacement for getenv(3).
18
+
19
+ Patch (apply with `patch -p0'):
20
+
21
+ *** ../bash-4.2-patched/variables.h 2010-12-02 20:22:01.000000000 -0500
22
+ --- variables.h 2011-02-19 19:57:12.000000000 -0500
23
+ ***************
24
+ *** 314,317 ****
25
+ --- 314,318 ----
26
+ extern void sort_variables __P((SHELL_VAR **));
27
+
28
+ + extern int chkexport __P((char *));
29
+ extern void maybe_make_export_env __P((void));
30
+ extern void update_export_env_inplace __P((char *, int, char *));
31
+ *** ../bash-4.2-patched/variables.c 2011-01-24 20:07:48.000000000 -0500
32
+ --- variables.c 2011-02-19 20:04:50.000000000 -0500
33
+ ***************
34
+ *** 3654,3657 ****
35
+ --- 3654,3673 ----
36
+ }
37
+
38
+ + int
39
+ + chkexport (name)
40
+ + char *name;
41
+ + {
42
+ + SHELL_VAR *v;
43
+ +
44
+ + v = find_variable (name);
45
+ + if (exported_p (v))
46
+ + {
47
+ + array_needs_making = 1;
48
+ + maybe_make_export_env ();
49
+ + return 1;
50
+ + }
51
+ + return 0;
52
+ + }
53
+ +
54
+ void
55
+ maybe_make_export_env ()
56
+ ***************
57
+ *** 4215,4219 ****
58
+ { "TEXTDOMAINDIR", sv_locale },
59
+
60
+ ! #if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
61
+ { "TZ", sv_tz },
62
+ #endif
63
+ --- 4231,4235 ----
64
+ { "TEXTDOMAINDIR", sv_locale },
65
+
66
+ ! #if defined (HAVE_TZSET)
67
+ { "TZ", sv_tz },
68
+ #endif
69
+ ***************
70
+ *** 4559,4568 ****
71
+ #endif /* HISTORY */
72
+
73
+ ! #if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
74
+ void
75
+ sv_tz (name)
76
+ char *name;
77
+ {
78
+ ! tzset ();
79
+ }
80
+ #endif
81
+ --- 4575,4585 ----
82
+ #endif /* HISTORY */
83
+
84
+ ! #if defined (HAVE_TZSET)
85
+ void
86
+ sv_tz (name)
87
+ char *name;
88
+ {
89
+ ! if (chkexport (name))
90
+ ! tzset ();
91
+ }
92
+ #endif
93
+ *** ../bash-4.2-patched/parse.y 2011-01-02 15:48:11.000000000 -0500
94
+ --- parse.y 2011-02-19 20:05:00.000000000 -0500
95
+ ***************
96
+ *** 5136,5139 ****
97
+ --- 5136,5142 ----
98
+ /* Make the current time/date into a string. */
99
+ (void) time (&the_time);
100
+ + #if defined (HAVE_TZSET)
101
+ + sv_tz ("TZ"); /* XXX -- just make sure */
102
+ + #endif
103
+ tm = localtime (&the_time);
104
+
105
+ *** ../bash-4.2-patched/builtins/printf.def 2010-11-23 10:02:55.000000000 -0500
106
+ --- builtins/printf.def 2011-02-19 20:05:04.000000000 -0500
107
+ ***************
108
+ *** 466,469 ****
109
+ --- 466,472 ----
110
+ else
111
+ secs = arg;
112
+ + #if defined (HAVE_TZSET)
113
+ + sv_tz ("TZ"); /* XXX -- just make sure */
114
+ + #endif
115
+ tm = localtime (&secs);
116
+ n = strftime (timebuf, sizeof (timebuf), timefmt, tm);
117
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
118
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
119
+ ***************
120
+ *** 26,30 ****
121
+ looks for to find the patch level (for the sccs version string). */
122
+
123
+ ! #define PATCHLEVEL 4
124
+
125
+ #endif /* _PATCHLEVEL_H_ */
126
+ --- 26,30 ----
127
+ looks for to find the patch level (for the sccs version string). */
128
+
129
+ ! #define PATCHLEVEL 5
130
+
131
+ #endif /* _PATCHLEVEL_H_ */
file added
+46
SOURCES/bash42-006 ADDED
@@ -0,0 +1,46 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-006
6
+
7
+ Bug-Reported-by: Allan McRae <allan@archlinux.org>
8
+ Bug-Reference-ID: <4D6D0D0B.50908@archlinux.org>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00001.html
10
+
11
+ Bug-Description:
12
+
13
+ A problem with bash42-005 caused it to dump core if TZ was unset.
14
+
15
+ Patch (apply with `patch -p0'):
16
+
17
+ *** ../bash-4.2-patched/variables.c 2011-02-25 12:07:41.000000000 -0500
18
+ --- variables.c 2011-03-01 10:13:04.000000000 -0500
19
+ ***************
20
+ *** 3661,3665 ****
21
+
22
+ v = find_variable (name);
23
+ ! if (exported_p (v))
24
+ {
25
+ array_needs_making = 1;
26
+ --- 3661,3665 ----
27
+
28
+ v = find_variable (name);
29
+ ! if (v && exported_p (v))
30
+ {
31
+ array_needs_making = 1;
32
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
33
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
34
+ ***************
35
+ *** 26,30 ****
36
+ looks for to find the patch level (for the sccs version string). */
37
+
38
+ ! #define PATCHLEVEL 5
39
+
40
+ #endif /* _PATCHLEVEL_H_ */
41
+ --- 26,30 ----
42
+ looks for to find the patch level (for the sccs version string). */
43
+
44
+ ! #define PATCHLEVEL 6
45
+
46
+ #endif /* _PATCHLEVEL_H_ */
file added
+46
SOURCES/bash42-007 ADDED
@@ -0,0 +1,46 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-007
6
+
7
+ Bug-Reported-by: Matthias Klose <doko@debian.org>
8
+ Bug-Reference-ID: <4D6FD2AC.1010500@debian.org>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00015.html
10
+
11
+ Bug-Description:
12
+
13
+ When used in contexts where word splitting and quote removal were not
14
+ performed, such as case statement word expansion, empty strings
15
+ (either literal or resulting from quoted variables that were unset or
16
+ null) were not expanded correctly, resulting in failure.
17
+
18
+ Patch (apply with `patch -p0'):
19
+
20
+ *** ../bash-4.2-patched/subst.c 2011-02-25 12:03:58.000000000 -0500
21
+ --- subst.c 2011-03-03 14:08:23.000000000 -0500
22
+ ***************
23
+ *** 4609,4614 ****
24
+ --- 4611,4617 ----
25
+ if (ifs_firstc == 0)
26
+ #endif
27
+ word->flags |= W_NOSPLIT;
28
+ + word->flags |= W_NOSPLIT2;
29
+ result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL);
30
+ expand_no_split_dollar_star = 0;
31
+
32
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
33
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
34
+ ***************
35
+ *** 26,30 ****
36
+ looks for to find the patch level (for the sccs version string). */
37
+
38
+ ! #define PATCHLEVEL 6
39
+
40
+ #endif /* _PATCHLEVEL_H_ */
41
+ --- 26,30 ----
42
+ looks for to find the patch level (for the sccs version string). */
43
+
44
+ ! #define PATCHLEVEL 7
45
+
46
+ #endif /* _PATCHLEVEL_H_ */
file added
+74
SOURCES/bash42-008 ADDED
@@ -0,0 +1,74 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-008
6
+
7
+ Bug-Reported-by: Doug McMahon <mc2man@optonline.net>
8
+ Bug-Reference-ID: <1299441211.2535.11.camel@doug-XPS-M1330>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00050.html
10
+
11
+ Bug-Description:
12
+
13
+ Bash-4.2 does not attempt to save the shell history on receipt of a
14
+ terminating signal that is handled synchronously. Unfortunately, the
15
+ `close' button on most X11 terminal emulators sends SIGHUP, which
16
+ kills the shell.
17
+
18
+ This is a very small patch to save the history in the case that an
19
+ interactive shell receives a SIGHUP or SIGTERM while in readline and
20
+ reading a command.
21
+
22
+ The next version of bash will do this differently.
23
+
24
+ Patch (apply with `patch -p0'):
25
+
26
+ *** ../bash-4.2-patched/sig.c Tue Nov 23 08:21:22 2010
27
+ --- sig.c Tue Mar 8 21:28:32 2011
28
+ ***************
29
+ *** 47,50 ****
30
+ --- 47,51 ----
31
+ #if defined (READLINE)
32
+ # include "bashline.h"
33
+ + # include <readline/readline.h>
34
+ #endif
35
+
36
+ ***************
37
+ *** 63,66 ****
38
+ --- 64,68 ----
39
+ extern int history_lines_this_session;
40
+ #endif
41
+ + extern int no_line_editing;
42
+
43
+ extern void initialize_siglist ();
44
+ ***************
45
+ *** 506,510 ****
46
+ #if defined (HISTORY)
47
+ /* XXX - will inhibit history file being written */
48
+ ! history_lines_this_session = 0;
49
+ #endif
50
+ terminate_immediately = 0;
51
+ --- 508,515 ----
52
+ #if defined (HISTORY)
53
+ /* XXX - will inhibit history file being written */
54
+ ! # if defined (READLINE)
55
+ ! if (interactive_shell == 0 || interactive == 0 || (sig != SIGHUP && sig != SIGTERM) || no_line_editing || (RL_ISSTATE (RL_STATE_READCMD) == 0))
56
+ ! # endif
57
+ ! history_lines_this_session = 0;
58
+ #endif
59
+ terminate_immediately = 0;
60
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
61
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
62
+ ***************
63
+ *** 26,30 ****
64
+ looks for to find the patch level (for the sccs version string). */
65
+
66
+ ! #define PATCHLEVEL 7
67
+
68
+ #endif /* _PATCHLEVEL_H_ */
69
+ --- 26,30 ----
70
+ looks for to find the patch level (for the sccs version string). */
71
+
72
+ ! #define PATCHLEVEL 8
73
+
74
+ #endif /* _PATCHLEVEL_H_ */
file added
+82
SOURCES/bash42-009 ADDED
@@ -0,0 +1,82 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-009
6
+
7
+ Bug-Reported-by: <piuma@piumalab.org>
8
+ Bug-Reference-ID: <4DAAC0DB.7060606@piumalab.org>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-04/msg00075.html
10
+
11
+ Bug-Description:
12
+
13
+ Under certain circumstances, running `fc -l' two times in succession with a
14
+ relative history offset at the end of the history will result in an incorrect
15
+ calculation of the last history entry and a seg fault.
16
+
17
+ Patch (apply with `patch -p0'):
18
+
19
+ *** ../bash-4.2-patched/builtins/fc.def 2010-05-30 18:25:38.000000000 -0400
20
+ --- builtins/fc.def 2011-04-19 15:46:17.000000000 -0400
21
+ ***************
22
+ *** 305,309 ****
23
+
24
+ /* XXX */
25
+ ! if (saved_command_line_count > 0 && i == last_hist && hlist[last_hist] == 0)
26
+ while (last_hist >= 0 && hlist[last_hist] == 0)
27
+ last_hist--;
28
+ --- 305,309 ----
29
+
30
+ /* XXX */
31
+ ! if (i == last_hist && hlist[last_hist] == 0)
32
+ while (last_hist >= 0 && hlist[last_hist] == 0)
33
+ last_hist--;
34
+ ***************
35
+ *** 476,480 ****
36
+ {
37
+ int sign, n, clen, rh;
38
+ ! register int i, j;
39
+ register char *s;
40
+
41
+ --- 476,480 ----
42
+ {
43
+ int sign, n, clen, rh;
44
+ ! register int i, j, last_hist;
45
+ register char *s;
46
+
47
+ ***************
48
+ *** 496,500 ****
49
+ calculation as if it were on. */
50
+ rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
51
+ ! i -= rh + hist_last_line_added;
52
+
53
+ /* No specification defaults to most recent command. */
54
+ --- 496,508 ----
55
+ calculation as if it were on. */
56
+ rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
57
+ ! last_hist = i - rh - hist_last_line_added;
58
+ !
59
+ ! if (i == last_hist && hlist[last_hist] == 0)
60
+ ! while (last_hist >= 0 && hlist[last_hist] == 0)
61
+ ! last_hist--;
62
+ ! if (last_hist < 0)
63
+ ! return (-1);
64
+ !
65
+ ! i = last_hist;
66
+
67
+ /* No specification defaults to most recent command. */
68
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
69
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
70
+ ***************
71
+ *** 26,30 ****
72
+ looks for to find the patch level (for the sccs version string). */
73
+
74
+ ! #define PATCHLEVEL 8
75
+
76
+ #endif /* _PATCHLEVEL_H_ */
77
+ --- 26,30 ----
78
+ looks for to find the patch level (for the sccs version string). */
79
+
80
+ ! #define PATCHLEVEL 9
81
+
82
+ #endif /* _PATCHLEVEL_H_ */
file added
+61
SOURCES/bash42-010 ADDED
@@ -0,0 +1,61 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-010
6
+
7
+ Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
8
+ Bug-Reference-ID: <201104122356.20160.vapier@gentoo.org>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-04/msg00058.html
10
+
11
+ Bug-Description:
12
+
13
+ Bash did not correctly print/reproduce here documents attached to commands
14
+ inside compound commands such as arithmetic for loops and user-specified
15
+ subshells. This affected the execution of such commands inside a shell
16
+ function when the function definition is saved and later restored using
17
+ `.' or `eval'.
18
+
19
+ Patch (apply with `patch -p0'):
20
+
21
+ *** ../bash-4.2-patched/print_cmd.c 2010-05-30 18:34:08.000000000 -0400
22
+ --- print_cmd.c 2011-04-14 10:43:18.000000000 -0400
23
+ ***************
24
+ *** 316,319 ****
25
+ --- 317,321 ----
26
+ skip_this_indent++;
27
+ make_command_string_internal (command->value.Subshell->command);
28
+ + PRINT_DEFERRED_HEREDOCS ("");
29
+ cprintf (" )");
30
+ break;
31
+ ***************
32
+ *** 593,596 ****
33
+ --- 606,610 ----
34
+ indentation += indentation_amount;
35
+ make_command_string_internal (arith_for_command->action);
36
+ + PRINT_DEFERRED_HEREDOCS ("");
37
+ semicolon ();
38
+ indentation -= indentation_amount;
39
+ ***************
40
+ *** 654,657 ****
41
+ --- 668,672 ----
42
+
43
+ make_command_string_internal (group_command->command);
44
+ + PRINT_DEFERRED_HEREDOCS ("");
45
+
46
+ if (inside_function_def)
47
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
48
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
49
+ ***************
50
+ *** 26,30 ****
51
+ looks for to find the patch level (for the sccs version string). */
52
+
53
+ ! #define PATCHLEVEL 9
54
+
55
+ #endif /* _PATCHLEVEL_H_ */
56
+ --- 26,30 ----
57
+ looks for to find the patch level (for the sccs version string). */
58
+
59
+ ! #define PATCHLEVEL 10
60
+
61
+ #endif /* _PATCHLEVEL_H_ */
file added
+46
SOURCES/bash42-011 ADDED
@@ -0,0 +1,46 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-011
6
+
7
+ Bug-Reported-by: "David Parks" <davidparks21@yahoo.com>
8
+ Bug-Reference-ID: <014101cc82c6$46ac1540$d4043fc0$@com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-10/msg00031.html
10
+
11
+ Bug-Description:
12
+
13
+ Overwriting a value in an associative array causes the memory allocated to
14
+ store the key on the second and subsequent assignments to leak.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/assoc.c 2009-08-05 20:19:40.000000000 -0400
19
+ --- assoc.c 2011-10-04 20:23:07.000000000 -0400
20
+ ***************
21
+ *** 78,81 ****
22
+ --- 78,86 ----
23
+ if (b == 0)
24
+ return -1;
25
+ + /* If we are overwriting an existing element's value, we're not going to
26
+ + use the key. Nothing in the array assignment code path frees the key
27
+ + string, so we can free it here to avoid a memory leak. */
28
+ + if (b->key != key)
29
+ + free (key);
30
+ FREE (b->data);
31
+ b->data = value ? savestring (value) : (char *)0;
32
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
33
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
34
+ ***************
35
+ *** 26,30 ****
36
+ looks for to find the patch level (for the sccs version string). */
37
+
38
+ ! #define PATCHLEVEL 10
39
+
40
+ #endif /* _PATCHLEVEL_H_ */
41
+ --- 26,30 ----
42
+ looks for to find the patch level (for the sccs version string). */
43
+
44
+ ! #define PATCHLEVEL 11
45
+
46
+ #endif /* _PATCHLEVEL_H_ */
file added
+151
SOURCES/bash42-012 ADDED
@@ -0,0 +1,151 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-012
6
+
7
+ Bug-Reported-by: Rui Santos <rsantos@grupopie.com>
8
+ Bug-Reference-ID: <4E04C6D0.2020507@grupopie.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00079.html
10
+
11
+ Bug-Description:
12
+
13
+ When calling the parser to recursively parse a command substitution within
14
+ an arithmetic expansion, the shell overwrote the saved shell input line and
15
+ associated state, resulting in a garbled command.
16
+
17
+ Patch (apply with `patch -p0'):
18
+
19
+ *** ../bash-4.2-patched/parse.y 2011-02-26 19:19:05.000000000 -0500
20
+ --- parse.y 2011-06-24 20:08:22.000000000 -0400
21
+ ***************
22
+ *** 3843,3846 ****
23
+ --- 3849,3853 ----
24
+ {
25
+ sh_parser_state_t ps;
26
+ + sh_input_line_state_t ls;
27
+ int orig_ind, nc, sflags;
28
+ char *ret, *s, *ep, *ostring;
29
+ ***************
30
+ *** 3850,3857 ****
31
+ --- 3857,3866 ----
32
+ ostring = string;
33
+
34
+ + /*itrace("xparse_dolparen: size = %d shell_input_line = `%s'", shell_input_line_size, shell_input_line);*/
35
+ sflags = SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOFREE;
36
+ if (flags & SX_NOLONGJMP)
37
+ sflags |= SEVAL_NOLONGJMP;
38
+ save_parser_state (&ps);
39
+ + save_input_line_state (&ls);
40
+
41
+ /*(*/
42
+ ***************
43
+ *** 3862,3865 ****
44
+ --- 3871,3876 ----
45
+ restore_parser_state (&ps);
46
+ reset_parser ();
47
+ + /* reset_parser clears shell_input_line and associated variables */
48
+ + restore_input_line_state (&ls);
49
+ if (interactive)
50
+ token_to_read = 0;
51
+ ***************
52
+ *** 5909,5912 ****
53
+ --- 5920,5929 ----
54
+ ps->echo_input_at_read = echo_input_at_read;
55
+
56
+ + ps->token = token;
57
+ + ps->token_buffer_size = token_buffer_size;
58
+ + /* Force reallocation on next call to read_token_word */
59
+ + token = 0;
60
+ + token_buffer_size = 0;
61
+ +
62
+ return (ps);
63
+ }
64
+ ***************
65
+ *** 5950,5953 ****
66
+ --- 5967,6006 ----
67
+ expand_aliases = ps->expand_aliases;
68
+ echo_input_at_read = ps->echo_input_at_read;
69
+ +
70
+ + FREE (token);
71
+ + token = ps->token;
72
+ + token_buffer_size = ps->token_buffer_size;
73
+ + }
74
+ +
75
+ + sh_input_line_state_t *
76
+ + save_input_line_state (ls)
77
+ + sh_input_line_state_t *ls;
78
+ + {
79
+ + if (ls == 0)
80
+ + ls = (sh_input_line_state_t *)xmalloc (sizeof (sh_input_line_state_t));
81
+ + if (ls == 0)
82
+ + return ((sh_input_line_state_t *)NULL);
83
+ +
84
+ + ls->input_line = shell_input_line;
85
+ + ls->input_line_size = shell_input_line_size;
86
+ + ls->input_line_len = shell_input_line_len;
87
+ + ls->input_line_index = shell_input_line_index;
88
+ +
89
+ + /* force reallocation */
90
+ + shell_input_line = 0;
91
+ + shell_input_line_size = shell_input_line_len = shell_input_line_index = 0;
92
+ + }
93
+ +
94
+ + void
95
+ + restore_input_line_state (ls)
96
+ + sh_input_line_state_t *ls;
97
+ + {
98
+ + FREE (shell_input_line);
99
+ + shell_input_line = ls->input_line;
100
+ + shell_input_line_size = ls->input_line_size;
101
+ + shell_input_line_len = ls->input_line_len;
102
+ + shell_input_line_index = ls->input_line_index;
103
+ +
104
+ + set_line_mbstate ();
105
+ }
106
+
107
+ *** ../bash-4.2-patched/shell.h 2011-01-06 22:16:55.000000000 -0500
108
+ --- shell.h 2011-06-24 19:12:25.000000000 -0400
109
+ ***************
110
+ *** 137,140 ****
111
+ --- 139,145 ----
112
+ int *token_state;
113
+
114
+ + char *token;
115
+ + int token_buffer_size;
116
+ +
117
+ /* input line state -- line number saved elsewhere */
118
+ int input_line_terminator;
119
+ ***************
120
+ *** 167,171 ****
121
+ --- 172,186 ----
122
+ } sh_parser_state_t;
123
+
124
+ + typedef struct _sh_input_line_state_t {
125
+ + char *input_line;
126
+ + int input_line_index;
127
+ + int input_line_size;
128
+ + int input_line_len;
129
+ + } sh_input_line_state_t;
130
+ +
131
+ /* Let's try declaring these here. */
132
+ extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *));
133
+ extern void restore_parser_state __P((sh_parser_state_t *));
134
+ +
135
+ + extern sh_input_line_state_t *save_input_line_state __P((sh_input_line_state_t *));
136
+ + extern void restore_input_line_state __P((sh_input_line_state_t *));
137
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
138
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
139
+ ***************
140
+ *** 26,30 ****
141
+ looks for to find the patch level (for the sccs version string). */
142
+
143
+ ! #define PATCHLEVEL 11
144
+
145
+ #endif /* _PATCHLEVEL_H_ */
146
+ --- 26,30 ----
147
+ looks for to find the patch level (for the sccs version string). */
148
+
149
+ ! #define PATCHLEVEL 12
150
+
151
+ #endif /* _PATCHLEVEL_H_ */
file added
+52
SOURCES/bash42-013 ADDED
@@ -0,0 +1,52 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-013
6
+
7
+ Bug-Reported-by: Marten Wikstrom <marten.wikstrom@keystream.se>
8
+ Bug-Reference-ID: <BANLkTikKECAh94ZEX68iQvxYuPeEM_xoSQ@mail.gmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-05/msg00049.html
10
+
11
+ Bug-Description:
12
+
13
+ An off-by-one error caused the shell to skip over CTLNUL characters,
14
+ which are used internally to mark quoted null strings. The effect
15
+ was to have stray 0x7f characters left after expanding words like
16
+ """"""""aa.
17
+
18
+ Patch (apply with `patch -p0'):
19
+
20
+ *** ../bash-4.2-patched/subst.c 2011-03-06 14:11:11.000000000 -0500
21
+ --- subst.c 2011-05-11 11:23:33.000000000 -0400
22
+ ***************
23
+ *** 3707,3711 ****
24
+ }
25
+ else if (string[i] == CTLNUL)
26
+ ! i++;
27
+
28
+ prev_i = i;
29
+ --- 3710,3717 ----
30
+ }
31
+ else if (string[i] == CTLNUL)
32
+ ! {
33
+ ! i++;
34
+ ! continue;
35
+ ! }
36
+
37
+ prev_i = i;
38
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
39
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
40
+ ***************
41
+ *** 26,30 ****
42
+ looks for to find the patch level (for the sccs version string). */
43
+
44
+ ! #define PATCHLEVEL 12
45
+
46
+ #endif /* _PATCHLEVEL_H_ */
47
+ --- 26,30 ----
48
+ looks for to find the patch level (for the sccs version string). */
49
+
50
+ ! #define PATCHLEVEL 13
51
+
52
+ #endif /* _PATCHLEVEL_H_ */
file added
+47
SOURCES/bash42-014 ADDED
@@ -0,0 +1,47 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-014
6
+
7
+ Bug-Reported-by: Shawn Bohrer <sbohrer@rgmadvisors.com>
8
+ Bug-Reference-ID: <20110504152320.6E8F28130527@dev1.rgmadvisors.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-05/msg00018.html
10
+
11
+ Bug-Description:
12
+
13
+ The regular expression matching operator did not correctly match
14
+ expressions with an embedded ^A.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/pathexp.c 2010-08-13 23:21:57.000000000 -0400
19
+ --- pathexp.c 2011-05-05 16:40:58.000000000 -0400
20
+ ***************
21
+ *** 197,201 ****
22
+ if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/')
23
+ continue;
24
+ ! if ((qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
25
+ continue;
26
+ temp[j++] = '\\';
27
+ --- 197,201 ----
28
+ if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/')
29
+ continue;
30
+ ! if (pathname[i+1] != CTLESC && (qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
31
+ continue;
32
+ temp[j++] = '\\';
33
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
34
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
35
+ ***************
36
+ *** 26,30 ****
37
+ looks for to find the patch level (for the sccs version string). */
38
+
39
+ ! #define PATCHLEVEL 13
40
+
41
+ #endif /* _PATCHLEVEL_H_ */
42
+ --- 26,30 ----
43
+ looks for to find the patch level (for the sccs version string). */
44
+
45
+ ! #define PATCHLEVEL 14
46
+
47
+ #endif /* _PATCHLEVEL_H_ */
file added
+81
SOURCES/bash42-015 ADDED
@@ -0,0 +1,81 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-015
6
+
7
+ Bug-Reported-by: <dnade.ext@orange-ftgroup.com>
8
+ Bug-Reference-ID: <728_1312188080_4E3666B0_728_118711_1_3B5D3E0F95CC5C478D6500CDCE8B691F7AAAA4AA3D@PUEXCB2B.nanterre.francetelecom.fr>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-08/msg00000.html
10
+
11
+ Bug-Description:
12
+
13
+ When in a context where arithmetic evaluation is not taking place, the
14
+ evaluator should not check for division by 0.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/expr.c 2010-12-21 11:12:13.000000000 -0500
19
+ --- expr.c 2011-08-02 20:58:28.000000000 -0400
20
+ ***************
21
+ *** 477,480 ****
22
+ --- 481,492 ----
23
+ if (special)
24
+ {
25
+ + if ((op == DIV || op == MOD) && value == 0)
26
+ + {
27
+ + if (noeval == 0)
28
+ + evalerror (_("division by 0"));
29
+ + else
30
+ + value = 1;
31
+ + }
32
+ +
33
+ switch (op)
34
+ {
35
+ ***************
36
+ *** 483,493 ****
37
+ break;
38
+ case DIV:
39
+ - if (value == 0)
40
+ - evalerror (_("division by 0"));
41
+ lvalue /= value;
42
+ break;
43
+ case MOD:
44
+ - if (value == 0)
45
+ - evalerror (_("division by 0"));
46
+ lvalue %= value;
47
+ break;
48
+ --- 495,501 ----
49
+ ***************
50
+ *** 805,809 ****
51
+
52
+ if (((op == DIV) || (op == MOD)) && (val2 == 0))
53
+ ! evalerror (_("division by 0"));
54
+
55
+ if (op == MUL)
56
+ --- 813,822 ----
57
+
58
+ if (((op == DIV) || (op == MOD)) && (val2 == 0))
59
+ ! {
60
+ ! if (noeval == 0)
61
+ ! evalerror (_("division by 0"));
62
+ ! else
63
+ ! val2 = 1;
64
+ ! }
65
+
66
+ if (op == MUL)
67
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
68
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
69
+ ***************
70
+ *** 26,30 ****
71
+ looks for to find the patch level (for the sccs version string). */
72
+
73
+ ! #define PATCHLEVEL 14
74
+
75
+ #endif /* _PATCHLEVEL_H_ */
76
+ --- 26,30 ----
77
+ looks for to find the patch level (for the sccs version string). */
78
+
79
+ ! #define PATCHLEVEL 15
80
+
81
+ #endif /* _PATCHLEVEL_H_ */
file added
+46
SOURCES/bash42-016 ADDED
@@ -0,0 +1,46 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-016
6
+
7
+ Bug-Reported-by: Martin von Gagern <Martin.vGagern@gmx.net>
8
+ Bug-Reference-ID: <4E43AD9E.8060501@gmx.net>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-08/msg00141.html
10
+
11
+ Bug-Description:
12
+
13
+ Bash should not check for mail while executing the `eval' builtin.
14
+
15
+ Patch (apply with `patch -p0'):
16
+
17
+ *** ../bash-4.2-patched/parse.y Fri Feb 25 12:07:41 2011
18
+ --- parse.y Thu Aug 11 19:02:26 2011
19
+ ***************
20
+ *** 2500,2504 ****
21
+ is the mail alarm reset; nothing takes place in check_mail ()
22
+ except the checking of mail. Please don't change this. */
23
+ ! if (prompt_is_ps1 && time_to_check_mail ())
24
+ {
25
+ check_mail ();
26
+ --- 2498,2502 ----
27
+ is the mail alarm reset; nothing takes place in check_mail ()
28
+ except the checking of mail. Please don't change this. */
29
+ ! if (prompt_is_ps1 && parse_and_execute_level == 0 && time_to_check_mail ())
30
+ {
31
+ check_mail ();
32
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
33
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
34
+ ***************
35
+ *** 26,30 ****
36
+ looks for to find the patch level (for the sccs version string). */
37
+
38
+ ! #define PATCHLEVEL 15
39
+
40
+ #endif /* _PATCHLEVEL_H_ */
41
+ --- 26,30 ----
42
+ looks for to find the patch level (for the sccs version string). */
43
+
44
+ ! #define PATCHLEVEL 16
45
+
46
+ #endif /* _PATCHLEVEL_H_ */
file added
+47
SOURCES/bash42-017 ADDED
@@ -0,0 +1,47 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-017
6
+
7
+ Bug-Reported-by: Curtis Doty <Curtis@GreenKey.net>
8
+ Bug-Reference-ID: <20110621035324.A4F70849F59@mx1.iParadigms.net>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00053.html
10
+
11
+ Bug-Description:
12
+
13
+ Using `read -a foo' where foo was an already-declared associative array
14
+ caused the shell to die with a segmentation fault.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/builtins/read.def 2011-01-04 11:43:36.000000000 -0500
19
+ --- builtins/read.def 2011-06-21 10:31:02.000000000 -0400
20
+ ***************
21
+ *** 643,646 ****
22
+ --- 642,651 ----
23
+ return EXECUTION_FAILURE; /* readonly or noassign */
24
+ }
25
+ + if (assoc_p (var))
26
+ + {
27
+ + builtin_error (_("%s: cannot convert associative to indexed array"), arrayname);
28
+ + xfree (input_string);
29
+ + return EXECUTION_FAILURE; /* existing associative array */
30
+ + }
31
+ array_flush (array_cell (var));
32
+
33
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
34
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
35
+ ***************
36
+ *** 26,30 ****
37
+ looks for to find the patch level (for the sccs version string). */
38
+
39
+ ! #define PATCHLEVEL 16
40
+
41
+ #endif /* _PATCHLEVEL_H_ */
42
+ --- 26,30 ----
43
+ looks for to find the patch level (for the sccs version string). */
44
+
45
+ ! #define PATCHLEVEL 17
46
+
47
+ #endif /* _PATCHLEVEL_H_ */
file added
+74
SOURCES/bash42-018 ADDED
@@ -0,0 +1,74 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-018
6
+
7
+ Bug-Reported-by: Thomas Cort <tcort@minix3.org>
8
+ Bug-Reference-ID: <BANLkTik-ebGGw3k_1YtB=RyfV1bsqdxC_g@mail.gmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00110.html
10
+
11
+ Bug-Description:
12
+
13
+ Bash fails to compile unless JOB_CONTROL is defined.
14
+
15
+ Patch (apply with `patch -p0'):
16
+
17
+ *** ../bash-4.2-patched/execute_cmd.c 2011-02-09 17:32:25.000000000 -0500
18
+ --- execute_cmd.c 2011-11-06 15:12:48.000000000 -0500
19
+ ***************
20
+ *** 2197,2200 ****
21
+ --- 2315,2319 ----
22
+ cmd->flags |= CMD_IGNORE_RETURN;
23
+
24
+ + #if defined (JOB_CONTROL)
25
+ lastpipe_flag = 0;
26
+ begin_unwind_frame ("lastpipe-exec");
27
+ ***************
28
+ *** 2216,2228 ****
29
+ add_unwind_protect (lastpipe_cleanup, lastpipe_jid);
30
+ }
31
+ ! cmd->flags |= CMD_LASTPIPE;
32
+ }
33
+ if (prev >= 0)
34
+ add_unwind_protect (close, prev);
35
+
36
+ exec_result = execute_command_internal (cmd, asynchronous, prev, pipe_out, fds_to_close);
37
+
38
+ if (lstdin > 0)
39
+ restore_stdin (lstdin);
40
+
41
+ if (prev >= 0)
42
+ --- 2335,2351 ----
43
+ add_unwind_protect (lastpipe_cleanup, lastpipe_jid);
44
+ }
45
+ ! if (cmd)
46
+ ! cmd->flags |= CMD_LASTPIPE;
47
+ }
48
+ if (prev >= 0)
49
+ add_unwind_protect (close, prev);
50
+ + #endif
51
+
52
+ exec_result = execute_command_internal (cmd, asynchronous, prev, pipe_out, fds_to_close);
53
+
54
+ + #if defined (JOB_CONTROL)
55
+ if (lstdin > 0)
56
+ restore_stdin (lstdin);
57
+ + #endif
58
+
59
+ if (prev >= 0)
60
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
61
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
62
+ ***************
63
+ *** 26,30 ****
64
+ looks for to find the patch level (for the sccs version string). */
65
+
66
+ ! #define PATCHLEVEL 17
67
+
68
+ #endif /* _PATCHLEVEL_H_ */
69
+ --- 26,30 ----
70
+ looks for to find the patch level (for the sccs version string). */
71
+
72
+ ! #define PATCHLEVEL 18
73
+
74
+ #endif /* _PATCHLEVEL_H_ */
file added
+47
SOURCES/bash42-019 ADDED
@@ -0,0 +1,47 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-019
6
+
7
+ Bug-Reported-by: Diego Augusto Molina <diegoaugustomolina@gmail.com>
8
+ Bug-Reference-ID: <CAGOxLdHcSQu3ck9Qy3pRjj_NBU5tAPSAvNm-95-nLQ9Szwb6aA@mail.gmail.com>
9
+ Bug-Reference-URL: lists.gnu.org/archive/html/bug-bash/2011-09/msg00047.html
10
+
11
+ Bug-Description:
12
+
13
+ Using `declare' with attributes and an invalid array variable name or
14
+ assignment reference resulted in a segmentation fault instead of a
15
+ declaration error.
16
+
17
+ Patch (apply with `patch -p0'):
18
+
19
+ *** ../bash-4.2-patched/builtins/declare.def 2010-05-30 18:25:21.000000000 -0400
20
+ --- builtins/declare.def 2011-09-15 15:20:20.000000000 -0400
21
+ ***************
22
+ *** 514,517 ****
23
+ --- 514,522 ----
24
+ var = assign_array_element (name, value, 0); /* XXX - not aflags */
25
+ *subscript_start = '\0';
26
+ + if (var == 0) /* some kind of assignment error */
27
+ + {
28
+ + assign_error++;
29
+ + NEXT_VARIABLE ();
30
+ + }
31
+ }
32
+ else if (simple_array_assign)
33
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
34
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
35
+ ***************
36
+ *** 26,30 ****
37
+ looks for to find the patch level (for the sccs version string). */
38
+
39
+ ! #define PATCHLEVEL 18
40
+
41
+ #endif /* _PATCHLEVEL_H_ */
42
+ --- 26,30 ----
43
+ looks for to find the patch level (for the sccs version string). */
44
+
45
+ ! #define PATCHLEVEL 19
46
+
47
+ #endif /* _PATCHLEVEL_H_ */
file added
+60
SOURCES/bash42-020 ADDED
@@ -0,0 +1,60 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-020
6
+
7
+ Bug-Reported-by: Vincent Sheffer <vince.sheffer@apisphere.com>
8
+ Bug-Reference-ID: <F13C1C4F-C44C-4071-BFED-4BB6D13CF92F@apisphere.com>
9
+ Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2011-08/msg00000.html
10
+
11
+ Bug-Description:
12
+
13
+ The shared object helper script needs to be updated for Mac OS X 10.7
14
+ (Lion, darwin11).
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/support/shobj-conf 2009-10-28 09:20:21.000000000 -0400
19
+ --- support/shobj-conf 2011-08-27 13:25:23.000000000 -0400
20
+ ***************
21
+ *** 158,162 ****
22
+
23
+ # Darwin/MacOS X
24
+ ! darwin[89]*|darwin10*)
25
+ SHOBJ_STATUS=supported
26
+ SHLIB_STATUS=supported
27
+ --- 172,176 ----
28
+
29
+ # Darwin/MacOS X
30
+ ! darwin[89]*|darwin1[012]*)
31
+ SHOBJ_STATUS=supported
32
+ SHLIB_STATUS=supported
33
+ ***************
34
+ *** 187,191 ****
35
+
36
+ case "${host_os}" in
37
+ ! darwin[789]*|darwin10*) SHOBJ_LDFLAGS=''
38
+ SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
39
+ ;;
40
+ --- 201,205 ----
41
+
42
+ case "${host_os}" in
43
+ ! darwin[789]*|darwin1[012]*) SHOBJ_LDFLAGS=''
44
+ SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
45
+ ;;
46
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
47
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
48
+ ***************
49
+ *** 26,30 ****
50
+ looks for to find the patch level (for the sccs version string). */
51
+
52
+ ! #define PATCHLEVEL 19
53
+
54
+ #endif /* _PATCHLEVEL_H_ */
55
+ --- 26,30 ----
56
+ looks for to find the patch level (for the sccs version string). */
57
+
58
+ ! #define PATCHLEVEL 20
59
+
60
+ #endif /* _PATCHLEVEL_H_ */
file added
+61
SOURCES/bash42-021 ADDED
@@ -0,0 +1,61 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-021
6
+
7
+ Bug-Reported-by: Dan Douglas <ormaaj@gmail.com>
8
+ Bug-Reference-ID: <4585554.nZWb4q7YoZ@smorgbox>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-12/msg00084.html
10
+
11
+ Bug-Description:
12
+
13
+ Using `read -N' to assign values to an array can result in NUL values being
14
+ assigned to some array elements. These values cause seg faults when referenced
15
+ later.
16
+
17
+ Patch (apply with `patch -p0'):
18
+
19
+ *** ../bash-4.2-patched/builtins/read.def 2011-11-21 18:03:38.000000000 -0500
20
+ --- builtins/read.def 2011-12-19 19:52:12.000000000 -0500
21
+ ***************
22
+ *** 738,742 ****
23
+ }
24
+ else
25
+ ! var = bind_read_variable (varname, t);
26
+ }
27
+ else
28
+ --- 775,779 ----
29
+ }
30
+ else
31
+ ! var = bind_read_variable (varname, t ? t : "");
32
+ }
33
+ else
34
+ ***************
35
+ *** 799,803 ****
36
+ }
37
+ else
38
+ ! var = bind_read_variable (list->word->word, input_string);
39
+
40
+ if (var)
41
+ --- 836,840 ----
42
+ }
43
+ else
44
+ ! var = bind_read_variable (list->word->word, input_string ? input_string : "");
45
+
46
+ if (var)
47
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
48
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
49
+ ***************
50
+ *** 26,30 ****
51
+ looks for to find the patch level (for the sccs version string). */
52
+
53
+ ! #define PATCHLEVEL 20
54
+
55
+ #endif /* _PATCHLEVEL_H_ */
56
+ --- 26,30 ----
57
+ looks for to find the patch level (for the sccs version string). */
58
+
59
+ ! #define PATCHLEVEL 21
60
+
61
+ #endif /* _PATCHLEVEL_H_ */
file added
+61
SOURCES/bash42-022 ADDED
@@ -0,0 +1,61 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-022
6
+
7
+ Bug-Reported-by: Gregory Margo <gmargo@pacbell.net>
8
+ Bug-Reference-ID: <20110727174529.GA3333@pacbell.net>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-07/msg00102.html
10
+
11
+ Bug-Description:
12
+
13
+ The return value from lseek is `off_t'. This can cause corrupted return
14
+ values when the file offset is greater than 2**31 - 1.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/lib/sh/zread.c Mon Mar 2 08:54:45 2009
19
+ --- lib/sh/zread.c Thu Jul 28 18:16:53 2011
20
+ ***************
21
+ *** 161,166 ****
22
+ int fd;
23
+ {
24
+ ! off_t off;
25
+ ! int r;
26
+
27
+ off = lused - lind;
28
+ --- 161,165 ----
29
+ int fd;
30
+ {
31
+ ! off_t off, r;
32
+
33
+ off = lused - lind;
34
+ ***************
35
+ *** 169,173 ****
36
+ r = lseek (fd, -off, SEEK_CUR);
37
+
38
+ ! if (r >= 0)
39
+ lused = lind = 0;
40
+ }
41
+ --- 168,172 ----
42
+ r = lseek (fd, -off, SEEK_CUR);
43
+
44
+ ! if (r != -1)
45
+ lused = lind = 0;
46
+ }
47
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
48
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
49
+ ***************
50
+ *** 26,30 ****
51
+ looks for to find the patch level (for the sccs version string). */
52
+
53
+ ! #define PATCHLEVEL 21
54
+
55
+ #endif /* _PATCHLEVEL_H_ */
56
+ --- 26,30 ----
57
+ looks for to find the patch level (for the sccs version string). */
58
+
59
+ ! #define PATCHLEVEL 22
60
+
61
+ #endif /* _PATCHLEVEL_H_ */
file added
+62
SOURCES/bash42-023 ADDED
@@ -0,0 +1,62 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-023
6
+
7
+ Bug-Reported-by: Ewan Mellor <Ewan.Mellor@eu.citrix.com>
8
+ Bug-Reference-ID: <6005BE083BF501439A84DC3523BAC82DC4B964FD12@LONPMAILBOX01.citrite.net>
9
+ Bug-Reference-URL:
10
+
11
+ Bug-Description:
12
+
13
+ Under some circumstances, an exit trap triggered by a bad substitution
14
+ error when errexit is enabled will cause the shell to exit with an
15
+ incorrect exit status (0).
16
+
17
+ Patch (apply with `patch -p0'):
18
+
19
+ *** ../bash-4.2-patched/subst.c 2011-11-21 12:04:38.000000000 -0500
20
+ --- subst.c 2012-02-08 13:36:28.000000000 -0500
21
+ ***************
22
+ *** 7275,7278 ****
23
+ --- 7281,7285 ----
24
+ case '\0':
25
+ bad_substitution:
26
+ + last_command_exit_value = EXECUTION_FAILURE;
27
+ report_error (_("%s: bad substitution"), string ? string : "??");
28
+ FREE (value);
29
+ *** ../bash-4.2-patched/error.c 2009-08-21 22:31:31.000000000 -0400
30
+ --- error.c 2012-02-25 15:54:40.000000000 -0500
31
+ ***************
32
+ *** 201,205 ****
33
+ va_end (args);
34
+ if (exit_immediately_on_error)
35
+ ! exit_shell (1);
36
+ }
37
+
38
+ --- 201,209 ----
39
+ va_end (args);
40
+ if (exit_immediately_on_error)
41
+ ! {
42
+ ! if (last_command_exit_value == 0)
43
+ ! last_command_exit_value = 1;
44
+ ! exit_shell (last_command_exit_value);
45
+ ! }
46
+ }
47
+
48
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
49
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
50
+ ***************
51
+ *** 26,30 ****
52
+ looks for to find the patch level (for the sccs version string). */
53
+
54
+ ! #define PATCHLEVEL 22
55
+
56
+ #endif /* _PATCHLEVEL_H_ */
57
+ --- 26,30 ----
58
+ looks for to find the patch level (for the sccs version string). */
59
+
60
+ ! #define PATCHLEVEL 23
61
+
62
+ #endif /* _PATCHLEVEL_H_ */
file added
+45
SOURCES/bash42-024 ADDED
@@ -0,0 +1,45 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-024
6
+
7
+ Bug-Reported-by: Jim Avera <james_avera@yahoo.com>
8
+ Bug-Reference-ID: <4F29E07A.80405@yahoo.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-02/msg00001.html
10
+
11
+ Bug-Description:
12
+
13
+ When `printf -v' is used to set an array element, the format string contains
14
+ `%b', and the corresponding argument is the empty string, the buffer used
15
+ to store the value to be assigned can be NULL, which results in NUL being
16
+ assigned to the array element. This causes a seg fault when it's used later.
17
+
18
+ Patch (apply with `patch -p0'):
19
+
20
+ *** ../bash-4.2-patched/builtins/printf.def 2011-02-25 12:07:41.000000000 -0500
21
+ --- builtins/printf.def 2012-02-02 08:37:12.000000000 -0500
22
+ ***************
23
+ *** 256,259 ****
24
+ --- 257,262 ----
25
+ {
26
+ vflag = 1;
27
+ + if (vbsize == 0)
28
+ + vbuf = xmalloc (vbsize = 16);
29
+ vblen = 0;
30
+ if (vbuf)
31
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
32
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
33
+ ***************
34
+ *** 26,30 ****
35
+ looks for to find the patch level (for the sccs version string). */
36
+
37
+ ! #define PATCHLEVEL 23
38
+
39
+ #endif /* _PATCHLEVEL_H_ */
40
+ --- 26,30 ----
41
+ looks for to find the patch level (for the sccs version string). */
42
+
43
+ ! #define PATCHLEVEL 24
44
+
45
+ #endif /* _PATCHLEVEL_H_ */
file added
+143
SOURCES/bash42-025 ADDED
@@ -0,0 +1,143 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-025
6
+
7
+ Bug-Reported-by: Bill Gradwohl <bill@ycc.com>
8
+ Bug-Reference-ID: <CAFyvKis-UfuOWr5THBRKh=vYHDoKEEgdW8hN1RviTuYQ00Lu5A@mail.gmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/help-bash/2012-03/msg00078.html
10
+
11
+ Bug-Description:
12
+
13
+ When used in a shell function, `declare -g -a array=(compound assignment)'
14
+ creates a local variable instead of a global one.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/command.h 2010-08-02 19:36:51.000000000 -0400
19
+ --- command.h 2012-04-01 12:38:35.000000000 -0400
20
+ ***************
21
+ *** 98,101 ****
22
+ --- 98,102 ----
23
+ #define W_ASSIGNASSOC 0x400000 /* word looks like associative array assignment */
24
+ #define W_ARRAYIND 0x800000 /* word is an array index being expanded */
25
+ + #define W_ASSNGLOBAL 0x1000000 /* word is a global assignment to declare (declare/typeset -g) */
26
+
27
+ /* Possible values for subshell_environment */
28
+ *** ../bash-4.2-patched/execute_cmd.c 2011-11-21 18:03:41.000000000 -0500
29
+ --- execute_cmd.c 2012-04-01 12:42:03.000000000 -0400
30
+ ***************
31
+ *** 3581,3585 ****
32
+ WORD_LIST *w;
33
+ struct builtin *b;
34
+ ! int assoc;
35
+
36
+ if (words == 0)
37
+ --- 3581,3585 ----
38
+ WORD_LIST *w;
39
+ struct builtin *b;
40
+ ! int assoc, global;
41
+
42
+ if (words == 0)
43
+ ***************
44
+ *** 3587,3591 ****
45
+
46
+ b = 0;
47
+ ! assoc = 0;
48
+
49
+ for (w = words; w; w = w->next)
50
+ --- 3587,3591 ----
51
+
52
+ b = 0;
53
+ ! assoc = global = 0;
54
+
55
+ for (w = words; w; w = w->next)
56
+ ***************
57
+ *** 3604,3607 ****
58
+ --- 3604,3609 ----
59
+ if (assoc)
60
+ w->word->flags |= W_ASSIGNASSOC;
61
+ + if (global)
62
+ + w->word->flags |= W_ASSNGLOBAL;
63
+ #endif
64
+ }
65
+ ***************
66
+ *** 3609,3613 ****
67
+ /* Note that we saw an associative array option to a builtin that takes
68
+ assignment statements. This is a bit of a kludge. */
69
+ ! else if (w->word->word[0] == '-' && strchr (w->word->word, 'A'))
70
+ {
71
+ if (b == 0)
72
+ --- 3611,3618 ----
73
+ /* Note that we saw an associative array option to a builtin that takes
74
+ assignment statements. This is a bit of a kludge. */
75
+ ! else if (w->word->word[0] == '-' && (strchr (w->word->word+1, 'A') || strchr (w->word->word+1, 'g')))
76
+ ! #else
77
+ ! else if (w->word->word[0] == '-' && strchr (w->word->word+1, 'g'))
78
+ ! #endif
79
+ {
80
+ if (b == 0)
81
+ ***************
82
+ *** 3619,3626 ****
83
+ words->word->flags |= W_ASSNBLTIN;
84
+ }
85
+ ! if (words->word->flags & W_ASSNBLTIN)
86
+ assoc = 1;
87
+ }
88
+ - #endif
89
+ }
90
+
91
+ --- 3624,3632 ----
92
+ words->word->flags |= W_ASSNBLTIN;
93
+ }
94
+ ! if ((words->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'A'))
95
+ assoc = 1;
96
+ + if ((words->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'g'))
97
+ + global = 1;
98
+ }
99
+ }
100
+
101
+ *** ../bash-4.2-patched/subst.c 2012-03-11 17:35:13.000000000 -0400
102
+ --- subst.c 2012-04-01 12:38:35.000000000 -0400
103
+ ***************
104
+ *** 367,370 ****
105
+ --- 367,375 ----
106
+ fprintf (stderr, "W_ASSNBLTIN%s", f ? "|" : "");
107
+ }
108
+ + if (f & W_ASSNGLOBAL)
109
+ + {
110
+ + f &= ~W_ASSNGLOBAL;
111
+ + fprintf (stderr, "W_ASSNGLOBAL%s", f ? "|" : "");
112
+ + }
113
+ if (f & W_COMPASSIGN)
114
+ {
115
+ ***************
116
+ *** 2804,2808 ****
117
+ else if (assign_list)
118
+ {
119
+ ! if (word->flags & W_ASSIGNARG)
120
+ aflags |= ASS_MKLOCAL;
121
+ if (word->flags & W_ASSIGNASSOC)
122
+ --- 2809,2813 ----
123
+ else if (assign_list)
124
+ {
125
+ ! if ((word->flags & W_ASSIGNARG) && (word->flags & W_ASSNGLOBAL) == 0)
126
+ aflags |= ASS_MKLOCAL;
127
+ if (word->flags & W_ASSIGNASSOC)
128
+
129
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
130
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
131
+ ***************
132
+ *** 26,30 ****
133
+ looks for to find the patch level (for the sccs version string). */
134
+
135
+ ! #define PATCHLEVEL 24
136
+
137
+ #endif /* _PATCHLEVEL_H_ */
138
+ --- 26,30 ----
139
+ looks for to find the patch level (for the sccs version string). */
140
+
141
+ ! #define PATCHLEVEL 25
142
+
143
+ #endif /* _PATCHLEVEL_H_ */
file added
+58
SOURCES/bash42-026 ADDED
@@ -0,0 +1,58 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-026
6
+
7
+ Bug-Reported-by: Greg Wooledge <wooledg@eeg.ccf.org>
8
+ Bug-Reference-ID: <20120425180443.GO22241@eeg.ccf.org>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00172.html
10
+
11
+ Bug-Description:
12
+
13
+ The `lastpipe' option does not behave correctly on machines where the
14
+ open file limit is less than 256.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/execute_cmd.c 2011-11-21 12:04:47.000000000 -0500
19
+ --- execute_cmd.c 2012-04-26 11:09:30.000000000 -0400
20
+ ***************
21
+ *** 2206,2210 ****
22
+ if (lastpipe_opt && job_control == 0 && asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
23
+ {
24
+ ! lstdin = move_to_high_fd (0, 0, 255);
25
+ if (lstdin > 0)
26
+ {
27
+ --- 2325,2329 ----
28
+ if (lastpipe_opt && job_control == 0 && asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
29
+ {
30
+ ! lstdin = move_to_high_fd (0, 1, -1);
31
+ if (lstdin > 0)
32
+ {
33
+ ***************
34
+ *** 2252,2256 ****
35
+ --- 2371,2377 ----
36
+ }
37
+
38
+ + #if defined (JOB_CONTROL)
39
+ discard_unwind_frame ("lastpipe-exec");
40
+ + #endif
41
+
42
+ return (exec_result);
43
+
44
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
45
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
46
+ ***************
47
+ *** 26,30 ****
48
+ looks for to find the patch level (for the sccs version string). */
49
+
50
+ ! #define PATCHLEVEL 25
51
+
52
+ #endif /* _PATCHLEVEL_H_ */
53
+ --- 26,30 ----
54
+ looks for to find the patch level (for the sccs version string). */
55
+
56
+ ! #define PATCHLEVEL 26
57
+
58
+ #endif /* _PATCHLEVEL_H_ */
file added
+47
SOURCES/bash42-027 ADDED
@@ -0,0 +1,47 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-027
6
+
7
+ Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
8
+ Bug-Reference-ID: <201204211243.30163.vapier@gentoo.org>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00134.html
10
+
11
+ Bug-Description:
12
+
13
+ When the `extglob' shell option is enabled, pattern substitution does not
14
+ work correctly in the presence of multibyte characters.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/subst.c 2012-03-11 17:52:57.000000000 -0400
19
+ --- subst.c 2012-04-22 16:19:10.000000000 -0400
20
+ ***************
21
+ *** 4167,4171 ****
22
+ #if defined (EXTENDED_GLOB)
23
+ if (extended_glob)
24
+ ! simple |= (wpat[1] != L'(' || (wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'+' && wpat[0] != L'!' && wpat[0] != L'@')); /*)*/
25
+ #endif
26
+
27
+ --- 4167,4171 ----
28
+ #if defined (EXTENDED_GLOB)
29
+ if (extended_glob)
30
+ ! simple &= (wpat[1] != L'(' || (wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'+' && wpat[0] != L'!' && wpat[0] != L'@')); /*)*/
31
+ #endif
32
+
33
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
34
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
35
+ ***************
36
+ *** 26,30 ****
37
+ looks for to find the patch level (for the sccs version string). */
38
+
39
+ ! #define PATCHLEVEL 26
40
+
41
+ #endif /* _PATCHLEVEL_H_ */
42
+ --- 26,30 ----
43
+ looks for to find the patch level (for the sccs version string). */
44
+
45
+ ! #define PATCHLEVEL 27
46
+
47
+ #endif /* _PATCHLEVEL_H_ */
file added
+52
SOURCES/bash42-028 ADDED
@@ -0,0 +1,52 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-028
6
+
7
+ Bug-Reported-by: Mark Edgar <medgar123@gmail.com>
8
+ Bug-Reference-ID: <CABHMh_3d+ZgO_zaEtYXPwK4P7tC0ghZ4g=Ue_TRpsEMf5YDsqw@mail.gmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-03/msg00109.html
10
+
11
+ Bug-Description:
12
+
13
+ When using a word expansion for which the right hand side is evaluated,
14
+ certain expansions of quoted null strings include spurious ^? characters.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/subst.c 2012-03-11 17:35:13.000000000 -0400
19
+ --- subst.c 2012-03-20 19:30:13.000000000 -0400
20
+ ***************
21
+ *** 5810,5813 ****
22
+ --- 5810,5823 ----
23
+ if (qdollaratp && ((hasdol && quoted) || l->next))
24
+ *qdollaratp = 1;
25
+ + /* If we have a quoted null result (QUOTED_NULL(temp)) and the word is
26
+ + a quoted null (l->next == 0 && QUOTED_NULL(l->word->word)), the
27
+ + flags indicate it (l->word->flags & W_HASQUOTEDNULL), and the
28
+ + expansion is quoted (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
29
+ + (which is more paranoia than anything else), we need to return the
30
+ + quoted null string and set the flags to indicate it. */
31
+ + if (l->next == 0 && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && QUOTED_NULL(temp) && QUOTED_NULL(l->word->word) && (l->word->flags & W_HASQUOTEDNULL))
32
+ + {
33
+ + w->flags |= W_HASQUOTEDNULL;
34
+ + }
35
+ dispose_words (l);
36
+ }
37
+
38
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
39
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
40
+ ***************
41
+ *** 26,30 ****
42
+ looks for to find the patch level (for the sccs version string). */
43
+
44
+ ! #define PATCHLEVEL 27
45
+
46
+ #endif /* _PATCHLEVEL_H_ */
47
+ --- 26,30 ----
48
+ looks for to find the patch level (for the sccs version string). */
49
+
50
+ ! #define PATCHLEVEL 28
51
+
52
+ #endif /* _PATCHLEVEL_H_ */
file added
+524
SOURCES/bash42-029 ADDED
@@ -0,0 +1,524 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-029
6
+
7
+ Bug-Reported-by: "Michael Kalisz" <michael@kalisz.homelinux.net>
8
+ Bug-Reference-ID: <50241.78.69.11.112.1298585641.squirrel@kalisz.homelinux.net>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00274.html
10
+
11
+ Bug-Description:
12
+
13
+ Bash-4.2 tries to leave completed directory names as the user typed them,
14
+ without expanding them to a full pathname. One effect of this is that
15
+ shell variables used in pathnames being completed (e.g., $HOME) are left
16
+ unchanged, but the `$' is quoted by readline because it is a special
17
+ character to the shell.
18
+
19
+ This patch introduces two things:
20
+
21
+ 1. A new shell option, `direxpand', which, if set, attempts to emulate the
22
+ bash-4.1 behavior of expanding words to full pathnames during
23
+ completion;
24
+ 2. A set of heuristics that reduce the number of times special characters
25
+ such as `$' are quoted when the directory name is not expanded.
26
+
27
+ Patch (apply with `patch -p0'):
28
+
29
+ diff -NrC 2 ../bash-4.2-patched/bashline.c ./bashline.c
30
+ *** ../bash-4.2-patched/bashline.c 2011-01-16 15:32:47.000000000 -0500
31
+ --- ./bashline.c 2012-05-07 16:27:18.000000000 -0400
32
+ ***************
33
+ *** 122,125 ****
34
+ --- 122,128 ----
35
+ static int bash_push_line __P((void));
36
+
37
+ + static rl_icppfunc_t *save_directory_hook __P((void));
38
+ + static void reset_directory_hook __P((rl_icppfunc_t *));
39
+ +
40
+ static void cleanup_expansion_error __P((void));
41
+ static void maybe_make_readline_line __P((char *));
42
+ ***************
43
+ *** 244,251 ****
44
+ --- 247,261 ----
45
+ int dircomplete_spelling = 0;
46
+
47
+ + /* Expand directory names during word/filename completion. */
48
+ + int dircomplete_expand = 0;
49
+ + int dircomplete_expand_relpath = 0;
50
+ +
51
+ static char *bash_completer_word_break_characters = " \t\n\"'@><=;|&(:";
52
+ static char *bash_nohostname_word_break_characters = " \t\n\"'><=;|&(:";
53
+ /* )) */
54
+
55
+ + static const char *default_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{~"; /*}*/
56
+ + static char *custom_filename_quote_characters = 0;
57
+ +
58
+ static rl_hook_func_t *old_rl_startup_hook = (rl_hook_func_t *)NULL;
59
+
60
+ ***************
61
+ *** 502,506 ****
62
+ /* Tell the completer that we might want to follow symbolic links or
63
+ do other expansion on directory names. */
64
+ ! rl_directory_rewrite_hook = bash_directory_completion_hook;
65
+
66
+ rl_filename_rewrite_hook = bash_filename_rewrite_hook;
67
+ --- 512,516 ----
68
+ /* Tell the completer that we might want to follow symbolic links or
69
+ do other expansion on directory names. */
70
+ ! set_directory_hook ();
71
+
72
+ rl_filename_rewrite_hook = bash_filename_rewrite_hook;
73
+ ***************
74
+ *** 530,534 ****
75
+
76
+ /* characters that need to be quoted when appearing in filenames. */
77
+ ! rl_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{~"; /*}*/
78
+
79
+ rl_filename_quoting_function = bash_quote_filename;
80
+ --- 540,544 ----
81
+
82
+ /* characters that need to be quoted when appearing in filenames. */
83
+ ! rl_filename_quote_characters = default_filename_quote_characters;
84
+
85
+ rl_filename_quoting_function = bash_quote_filename;
86
+ ***************
87
+ *** 565,570 ****
88
+ rl_attempted_completion_function = attempt_shell_completion;
89
+ rl_completion_entry_function = NULL;
90
+ - rl_directory_rewrite_hook = bash_directory_completion_hook;
91
+ rl_ignore_some_completions_function = filename_completion_ignore;
92
+ }
93
+
94
+ --- 575,582 ----
95
+ rl_attempted_completion_function = attempt_shell_completion;
96
+ rl_completion_entry_function = NULL;
97
+ rl_ignore_some_completions_function = filename_completion_ignore;
98
+ + rl_filename_quote_characters = default_filename_quote_characters;
99
+ +
100
+ + set_directory_hook ();
101
+ }
102
+
103
+ ***************
104
+ *** 1280,1283 ****
105
+ --- 1292,1298 ----
106
+ rl_ignore_some_completions_function = filename_completion_ignore;
107
+
108
+ + rl_filename_quote_characters = default_filename_quote_characters;
109
+ + set_directory_hook ();
110
+ +
111
+ /* Determine if this could be a command word. It is if it appears at
112
+ the start of the line (ignoring preceding whitespace), or if it
113
+ ***************
114
+ *** 1592,1595 ****
115
+ --- 1607,1616 ----
116
+ else
117
+ {
118
+ + if (dircomplete_expand && dot_or_dotdot (filename_hint))
119
+ + {
120
+ + dircomplete_expand = 0;
121
+ + set_directory_hook ();
122
+ + dircomplete_expand = 1;
123
+ + }
124
+ mapping_over = 4;
125
+ goto inner;
126
+ ***************
127
+ *** 1792,1795 ****
128
+ --- 1813,1819 ----
129
+ inner:
130
+ val = rl_filename_completion_function (filename_hint, istate);
131
+ + if (mapping_over == 4 && dircomplete_expand)
132
+ + set_directory_hook ();
133
+ +
134
+ istate = 1;
135
+
136
+ ***************
137
+ *** 2694,2697 ****
138
+ --- 2718,2767 ----
139
+ }
140
+
141
+ + /* Functions to save and restore the appropriate directory hook */
142
+ + /* This is not static so the shopt code can call it */
143
+ + void
144
+ + set_directory_hook ()
145
+ + {
146
+ + if (dircomplete_expand)
147
+ + {
148
+ + rl_directory_completion_hook = bash_directory_completion_hook;
149
+ + rl_directory_rewrite_hook = (rl_icppfunc_t *)0;
150
+ + }
151
+ + else
152
+ + {
153
+ + rl_directory_rewrite_hook = bash_directory_completion_hook;
154
+ + rl_directory_completion_hook = (rl_icppfunc_t *)0;
155
+ + }
156
+ + }
157
+ +
158
+ + static rl_icppfunc_t *
159
+ + save_directory_hook ()
160
+ + {
161
+ + rl_icppfunc_t *ret;
162
+ +
163
+ + if (dircomplete_expand)
164
+ + {
165
+ + ret = rl_directory_completion_hook;
166
+ + rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
167
+ + }
168
+ + else
169
+ + {
170
+ + ret = rl_directory_rewrite_hook;
171
+ + rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
172
+ + }
173
+ +
174
+ + return ret;
175
+ + }
176
+ +
177
+ + static void
178
+ + restore_directory_hook (hookf)
179
+ + rl_icppfunc_t *hookf;
180
+ + {
181
+ + if (dircomplete_expand)
182
+ + rl_directory_completion_hook = hookf;
183
+ + else
184
+ + rl_directory_rewrite_hook = hookf;
185
+ + }
186
+ +
187
+ /* Handle symbolic link references and other directory name
188
+ expansions while hacking completion. This should return 1 if it modifies
189
+ ***************
190
+ *** 2703,2720 ****
191
+ {
192
+ char *local_dirname, *new_dirname, *t;
193
+ ! int return_value, should_expand_dirname;
194
+ WORD_LIST *wl;
195
+ struct stat sb;
196
+
197
+ ! return_value = should_expand_dirname = 0;
198
+ local_dirname = *dirname;
199
+
200
+ ! if (mbschr (local_dirname, '$'))
201
+ ! should_expand_dirname = 1;
202
+ else
203
+ {
204
+ t = mbschr (local_dirname, '`');
205
+ if (t && unclosed_pair (local_dirname, strlen (local_dirname), "`") == 0)
206
+ ! should_expand_dirname = 1;
207
+ }
208
+
209
+ --- 2773,2801 ----
210
+ {
211
+ char *local_dirname, *new_dirname, *t;
212
+ ! int return_value, should_expand_dirname, nextch, closer;
213
+ WORD_LIST *wl;
214
+ struct stat sb;
215
+
216
+ ! return_value = should_expand_dirname = nextch = closer = 0;
217
+ local_dirname = *dirname;
218
+
219
+ ! if (t = mbschr (local_dirname, '$'))
220
+ ! {
221
+ ! should_expand_dirname = '$';
222
+ ! nextch = t[1];
223
+ ! /* Deliberately does not handle the deprecated $[...] arithmetic
224
+ ! expansion syntax */
225
+ ! if (nextch == '(')
226
+ ! closer = ')';
227
+ ! else if (nextch == '{')
228
+ ! closer = '}';
229
+ ! else
230
+ ! nextch = 0;
231
+ ! }
232
+ else
233
+ {
234
+ t = mbschr (local_dirname, '`');
235
+ if (t && unclosed_pair (local_dirname, strlen (local_dirname), "`") == 0)
236
+ ! should_expand_dirname = '`';
237
+ }
238
+
239
+ ***************
240
+ *** 2740,2743 ****
241
+ --- 2821,2841 ----
242
+ dispose_words (wl);
243
+ local_dirname = *dirname;
244
+ + /* XXX - change rl_filename_quote_characters here based on
245
+ + should_expand_dirname/nextch/closer. This is the only place
246
+ + custom_filename_quote_characters is modified. */
247
+ + if (rl_filename_quote_characters && *rl_filename_quote_characters)
248
+ + {
249
+ + int i, j, c;
250
+ + i = strlen (default_filename_quote_characters);
251
+ + custom_filename_quote_characters = xrealloc (custom_filename_quote_characters, i+1);
252
+ + for (i = j = 0; c = default_filename_quote_characters[i]; i++)
253
+ + {
254
+ + if (c == should_expand_dirname || c == nextch || c == closer)
255
+ + continue;
256
+ + custom_filename_quote_characters[j++] = c;
257
+ + }
258
+ + custom_filename_quote_characters[j] = '\0';
259
+ + rl_filename_quote_characters = custom_filename_quote_characters;
260
+ + }
261
+ }
262
+ else
263
+ ***************
264
+ *** 2759,2762 ****
265
+ --- 2857,2871 ----
266
+ }
267
+
268
+ + /* no_symbolic_links == 0 -> use (default) logical view of the file system.
269
+ + local_dirname[0] == '.' && local_dirname[1] == '/' means files in the
270
+ + current directory (./).
271
+ + local_dirname[0] == '.' && local_dirname[1] == 0 means relative pathnames
272
+ + in the current directory (e.g., lib/sh).
273
+ + XXX - should we do spelling correction on these? */
274
+ +
275
+ + /* This is test as it was in bash-4.2: skip relative pathnames in current
276
+ + directory. Change test to
277
+ + (local_dirname[0] != '.' || (local_dirname[1] && local_dirname[1] != '/'))
278
+ + if we want to skip paths beginning with ./ also. */
279
+ if (no_symbolic_links == 0 && (local_dirname[0] != '.' || local_dirname[1]))
280
+ {
281
+ ***************
282
+ *** 2764,2767 ****
283
+ --- 2873,2885 ----
284
+ int len1, len2;
285
+
286
+ + /* If we have a relative path
287
+ + (local_dirname[0] != '/' && local_dirname[0] != '.')
288
+ + that is canonical after appending it to the current directory, then
289
+ + temp1 = temp2+'/'
290
+ + That is,
291
+ + strcmp (temp1, temp2) == 0
292
+ + after adding a slash to temp2 below. It should be safe to not
293
+ + change those.
294
+ + */
295
+ t = get_working_directory ("symlink-hook");
296
+ temp1 = make_absolute (local_dirname, t);
297
+ ***************
298
+ *** 2798,2802 ****
299
+ }
300
+ }
301
+ ! return_value |= STREQ (local_dirname, temp2) == 0;
302
+ free (local_dirname);
303
+ *dirname = temp2;
304
+ --- 2916,2928 ----
305
+ }
306
+ }
307
+ !
308
+ ! /* dircomplete_expand_relpath == 0 means we want to leave relative
309
+ ! pathnames that are unchanged by canonicalization alone.
310
+ ! *local_dirname != '/' && *local_dirname != '.' == relative pathname
311
+ ! (consistent with general.c:absolute_pathname())
312
+ ! temp1 == temp2 (after appending a slash to temp2) means the pathname
313
+ ! is not changed by canonicalization as described above. */
314
+ ! if (dircomplete_expand_relpath || ((local_dirname[0] != '/' && local_dirname[0] != '.') && STREQ (temp1, temp2) == 0))
315
+ ! return_value |= STREQ (local_dirname, temp2) == 0;
316
+ free (local_dirname);
317
+ *dirname = temp2;
318
+ ***************
319
+ *** 3003,3012 ****
320
+ orig_func = rl_completion_entry_function;
321
+ orig_attempt_func = rl_attempted_completion_function;
322
+ - orig_dir_func = rl_directory_rewrite_hook;
323
+ orig_ignore_func = rl_ignore_some_completions_function;
324
+ orig_rl_completer_word_break_characters = rl_completer_word_break_characters;
325
+ rl_completion_entry_function = rl_filename_completion_function;
326
+ rl_attempted_completion_function = (rl_completion_func_t *)NULL;
327
+ - rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
328
+ rl_ignore_some_completions_function = filename_completion_ignore;
329
+ rl_completer_word_break_characters = " \t\n\"\'";
330
+ --- 3129,3139 ----
331
+ orig_func = rl_completion_entry_function;
332
+ orig_attempt_func = rl_attempted_completion_function;
333
+ orig_ignore_func = rl_ignore_some_completions_function;
334
+ orig_rl_completer_word_break_characters = rl_completer_word_break_characters;
335
+ +
336
+ + orig_dir_func = save_directory_hook ();
337
+ +
338
+ rl_completion_entry_function = rl_filename_completion_function;
339
+ rl_attempted_completion_function = (rl_completion_func_t *)NULL;
340
+ rl_ignore_some_completions_function = filename_completion_ignore;
341
+ rl_completer_word_break_characters = " \t\n\"\'";
342
+ ***************
343
+ *** 3016,3023 ****
344
+ rl_completion_entry_function = orig_func;
345
+ rl_attempted_completion_function = orig_attempt_func;
346
+ - rl_directory_rewrite_hook = orig_dir_func;
347
+ rl_ignore_some_completions_function = orig_ignore_func;
348
+ rl_completer_word_break_characters = orig_rl_completer_word_break_characters;
349
+
350
+ return r;
351
+ }
352
+ --- 3143,3151 ----
353
+ rl_completion_entry_function = orig_func;
354
+ rl_attempted_completion_function = orig_attempt_func;
355
+ rl_ignore_some_completions_function = orig_ignore_func;
356
+ rl_completer_word_break_characters = orig_rl_completer_word_break_characters;
357
+
358
+ + restore_directory_hook (orig_dir_func);
359
+ +
360
+ return r;
361
+ }
362
+ diff -NrC 2 ../bash-4.2-patched/bashline.h ./bashline.h
363
+ *** ../bash-4.2-patched/bashline.h 2009-01-04 14:32:22.000000000 -0500
364
+ --- ./bashline.h 2012-05-07 16:27:18.000000000 -0400
365
+ ***************
366
+ *** 34,41 ****
367
+ --- 34,46 ----
368
+ extern int bash_re_edit __P((char *));
369
+
370
+ + extern void bashline_set_event_hook __P((void));
371
+ + extern void bashline_reset_event_hook __P((void));
372
+ +
373
+ extern int bind_keyseq_to_unix_command __P((char *));
374
+
375
+ extern char **bash_default_completion __P((const char *, int, int, int, int));
376
+
377
+ + void set_directory_hook __P((void));
378
+ +
379
+ /* Used by programmable completion code. */
380
+ extern char *command_word_completion_function __P((const char *, int));
381
+ diff -NrC 2 ../bash-4.2-patched/builtins/shopt.def ./builtins/shopt.def
382
+ *** ../bash-4.2-patched/builtins/shopt.def 2010-07-02 22:42:44.000000000 -0400
383
+ --- ./builtins/shopt.def 2012-05-07 16:27:18.000000000 -0400
384
+ ***************
385
+ *** 62,65 ****
386
+ --- 62,69 ----
387
+ #include "bashgetopt.h"
388
+
389
+ + #if defined (READLINE)
390
+ + # include "../bashline.h"
391
+ + #endif
392
+ +
393
+ #if defined (HISTORY)
394
+ # include "../bashhist.h"
395
+ ***************
396
+ *** 95,99 ****
397
+ extern int no_empty_command_completion;
398
+ extern int force_fignore;
399
+ ! extern int dircomplete_spelling;
400
+
401
+ extern int enable_hostname_completion __P((int));
402
+ --- 99,103 ----
403
+ extern int no_empty_command_completion;
404
+ extern int force_fignore;
405
+ ! extern int dircomplete_spelling, dircomplete_expand;
406
+
407
+ extern int enable_hostname_completion __P((int));
408
+ ***************
409
+ *** 122,125 ****
410
+ --- 126,133 ----
411
+ #endif
412
+
413
+ + #if defined (READLINE)
414
+ + static int shopt_set_complete_direxpand __P((char *, int));
415
+ + #endif
416
+ +
417
+ static int shopt_login_shell;
418
+ static int shopt_compat31;
419
+ ***************
420
+ *** 151,154 ****
421
+ --- 159,163 ----
422
+ { "compat41", &shopt_compat41, set_compatibility_level },
423
+ #if defined (READLINE)
424
+ + { "direxpand", &dircomplete_expand, shopt_set_complete_direxpand },
425
+ { "dirspell", &dircomplete_spelling, (shopt_set_func_t *)NULL },
426
+ #endif
427
+ ***************
428
+ *** 536,539 ****
429
+ --- 545,559 ----
430
+ }
431
+
432
+ + #if defined (READLINE)
433
+ + static int
434
+ + shopt_set_complete_direxpand (option_name, mode)
435
+ + char *option_name;
436
+ + int mode;
437
+ + {
438
+ + set_directory_hook ();
439
+ + return 0;
440
+ + }
441
+ + #endif
442
+ +
443
+ #if defined (RESTRICTED_SHELL)
444
+ /* Don't allow the value of restricted_shell to be modified. */
445
+ Binary files ../bash-4.2-patched/doc/._bashref.pdf and ./doc/._bashref.pdf differ
446
+ diff -NrC 2 ../bash-4.2-patched/doc/bash.1 ./doc/bash.1
447
+ *** ../bash-4.2-patched/doc/bash.1 2011-01-16 15:31:39.000000000 -0500
448
+ --- ./doc/bash.1 2012-05-07 16:27:18.000000000 -0400
449
+ ***************
450
+ *** 8949,8952 ****
451
+ --- 8949,8962 ----
452
+ The default bash behavior remains as in previous versions.
453
+ .TP 8
454
+ + .B direxpand
455
+ + If set,
456
+ + .B bash
457
+ + replaces directory names with the results of word expansion when performing
458
+ + filename completion. This changes the contents of the readline editing
459
+ + buffer.
460
+ + If not set,
461
+ + .B bash
462
+ + attempts to preserve what the user typed.
463
+ + .TP 8
464
+ .B dirspell
465
+ If set,
466
+ diff -NrC 2 ../bash-4.2-patched/doc/bashref.texi ./doc/bashref.texi
467
+ *** ../bash-4.2-patched/doc/bashref.texi 2011-01-16 15:31:57.000000000 -0500
468
+ --- ./doc/bashref.texi 2012-05-07 16:27:18.000000000 -0400
469
+ ***************
470
+ *** 4536,4539 ****
471
+ --- 4536,4546 ----
472
+ The default Bash behavior remains as in previous versions.
473
+
474
+ + @item direxpand
475
+ + If set, Bash
476
+ + replaces directory names with the results of word expansion when performing
477
+ + filename completion. This changes the contents of the readline editing
478
+ + buffer.
479
+ + If not set, Bash attempts to preserve what the user typed.
480
+ +
481
+ @item dirspell
482
+ If set, Bash
483
+ diff -NrC 2 ../bash-4.2-patched/tests/shopt.right ./tests/shopt.right
484
+ *** ../bash-4.2-patched/tests/shopt.right 2010-07-02 23:36:30.000000000 -0400
485
+ --- ./tests/shopt.right 2012-05-07 16:27:18.000000000 -0400
486
+ ***************
487
+ *** 13,16 ****
488
+ --- 13,17 ----
489
+ shopt -u compat40
490
+ shopt -u compat41
491
+ + shopt -u direxpand
492
+ shopt -u dirspell
493
+ shopt -u dotglob
494
+ ***************
495
+ *** 69,72 ****
496
+ --- 70,74 ----
497
+ shopt -u compat40
498
+ shopt -u compat41
499
+ + shopt -u direxpand
500
+ shopt -u dirspell
501
+ shopt -u dotglob
502
+ ***************
503
+ *** 102,105 ****
504
+ --- 104,108 ----
505
+ compat40 off
506
+ compat41 off
507
+ + direxpand off
508
+ dirspell off
509
+ dotglob off
510
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
511
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
512
+ ***************
513
+ *** 26,30 ****
514
+ looks for to find the patch level (for the sccs version string). */
515
+
516
+ ! #define PATCHLEVEL 28
517
+
518
+ #endif /* _PATCHLEVEL_H_ */
519
+ --- 26,30 ----
520
+ looks for to find the patch level (for the sccs version string). */
521
+
522
+ ! #define PATCHLEVEL 29
523
+
524
+ #endif /* _PATCHLEVEL_H_ */
file added
+178
SOURCES/bash42-030 ADDED
@@ -0,0 +1,178 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-030
6
+
7
+ Bug-Reported-by: Roman Rakus <rrakus@redhat.com>
8
+ Bug-Reference-ID: <4D7DD91E.7040808@redhat.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00126.html
10
+
11
+ Bug-Description:
12
+
13
+ When attempting to glob strings in a multibyte locale, and those strings
14
+ contain invalid multibyte characters that cause mbsnrtowcs to return 0,
15
+ the globbing code loops infinitely.
16
+
17
+ Patch (apply with `patch -p0'):
18
+
19
+ *** ../bash-4.2-patched/lib/glob/xmbsrtowcs.c 2010-05-30 18:36:27.000000000 -0400
20
+ --- lib/glob/xmbsrtowcs.c 2011-03-22 16:06:47.000000000 -0400
21
+ ***************
22
+ *** 36,39 ****
23
+ --- 36,41 ----
24
+ #if HANDLE_MULTIBYTE
25
+
26
+ + #define WSBUF_INC 32
27
+ +
28
+ #ifndef FREE
29
+ # define FREE(x) do { if (x) free (x); } while (0)
30
+ ***************
31
+ *** 149,153 ****
32
+ size_t wcnum; /* Number of wide characters in WSBUF */
33
+ mbstate_t state; /* Conversion State */
34
+ ! size_t wcslength; /* Number of wide characters produced by the conversion. */
35
+ const char *end_or_backslash;
36
+ size_t nms; /* Number of multibyte characters to convert at one time. */
37
+ --- 151,155 ----
38
+ size_t wcnum; /* Number of wide characters in WSBUF */
39
+ mbstate_t state; /* Conversion State */
40
+ ! size_t n, wcslength; /* Number of wide characters produced by the conversion. */
41
+ const char *end_or_backslash;
42
+ size_t nms; /* Number of multibyte characters to convert at one time. */
43
+ ***************
44
+ *** 172,176 ****
45
+ tmp_p = p;
46
+ tmp_state = state;
47
+ ! wcslength = mbsnrtowcs(NULL, &tmp_p, nms, 0, &tmp_state);
48
+
49
+ /* Conversion failed. */
50
+ --- 174,189 ----
51
+ tmp_p = p;
52
+ tmp_state = state;
53
+ !
54
+ ! if (nms == 0 && *p == '\\') /* special initial case */
55
+ ! nms = wcslength = 1;
56
+ ! else
57
+ ! wcslength = mbsnrtowcs (NULL, &tmp_p, nms, 0, &tmp_state);
58
+ !
59
+ ! if (wcslength == 0)
60
+ ! {
61
+ ! tmp_p = p; /* will need below */
62
+ ! tmp_state = state;
63
+ ! wcslength = 1; /* take a single byte */
64
+ ! }
65
+
66
+ /* Conversion failed. */
67
+ ***************
68
+ *** 187,191 ****
69
+ wchar_t *wstmp;
70
+
71
+ ! wsbuf_size = wcnum+wcslength+1; /* 1 for the L'\0' or the potential L'\\' */
72
+
73
+ wstmp = (wchar_t *) realloc (wsbuf, wsbuf_size * sizeof (wchar_t));
74
+ --- 200,205 ----
75
+ wchar_t *wstmp;
76
+
77
+ ! while (wsbuf_size < wcnum+wcslength+1) /* 1 for the L'\0' or the potential L'\\' */
78
+ ! wsbuf_size += WSBUF_INC;
79
+
80
+ wstmp = (wchar_t *) realloc (wsbuf, wsbuf_size * sizeof (wchar_t));
81
+ ***************
82
+ *** 200,207 ****
83
+
84
+ /* Perform the conversion. This is assumed to return 'wcslength'.
85
+ ! * It may set 'p' to NULL. */
86
+ ! mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
87
+
88
+ ! wcnum += wcslength;
89
+
90
+ if (mbsinit (&state) && (p != NULL) && (*p == '\\'))
91
+ --- 214,229 ----
92
+
93
+ /* Perform the conversion. This is assumed to return 'wcslength'.
94
+ ! It may set 'p' to NULL. */
95
+ ! n = mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
96
+
97
+ ! /* Compensate for taking single byte on wcs conversion failure above. */
98
+ ! if (wcslength == 1 && (n == 0 || n == (size_t)-1))
99
+ ! {
100
+ ! state = tmp_state;
101
+ ! p = tmp_p;
102
+ ! wsbuf[wcnum++] = *p++;
103
+ ! }
104
+ ! else
105
+ ! wcnum += wcslength;
106
+
107
+ if (mbsinit (&state) && (p != NULL) && (*p == '\\'))
108
+ ***************
109
+ *** 231,236 ****
110
+ of DESTP and INDICESP are NULL. */
111
+
112
+ - #define WSBUF_INC 32
113
+ -
114
+ size_t
115
+ xdupmbstowcs (destp, indicesp, src)
116
+ --- 253,256 ----
117
+ *** ../bash-4.2-patched/lib/glob/glob.c 2009-11-14 18:39:30.000000000 -0500
118
+ --- lib/glob/glob.c 2012-07-07 12:09:56.000000000 -0400
119
+ ***************
120
+ *** 201,206 ****
121
+ size_t pat_n, dn_n;
122
+
123
+ pat_n = xdupmbstowcs (&pat_wc, NULL, pat);
124
+ ! dn_n = xdupmbstowcs (&dn_wc, NULL, dname);
125
+
126
+ ret = 0;
127
+ --- 201,209 ----
128
+ size_t pat_n, dn_n;
129
+
130
+ + pat_wc = dn_wc = (wchar_t *)NULL;
131
+ +
132
+ pat_n = xdupmbstowcs (&pat_wc, NULL, pat);
133
+ ! if (pat_n != (size_t)-1)
134
+ ! dn_n = xdupmbstowcs (&dn_wc, NULL, dname);
135
+
136
+ ret = 0;
137
+ ***************
138
+ *** 222,225 ****
139
+ --- 225,230 ----
140
+ ret = 1;
141
+ }
142
+ + else
143
+ + ret = skipname (pat, dname, flags);
144
+
145
+ FREE (pat_wc);
146
+ ***************
147
+ *** 267,272 ****
148
+ n = xdupmbstowcs (&wpathname, NULL, pathname);
149
+ if (n == (size_t) -1)
150
+ ! /* Something wrong. */
151
+ ! return;
152
+ orig_wpathname = wpathname;
153
+
154
+ --- 272,280 ----
155
+ n = xdupmbstowcs (&wpathname, NULL, pathname);
156
+ if (n == (size_t) -1)
157
+ ! {
158
+ ! /* Something wrong. Fall back to single-byte */
159
+ ! udequote_pathname (pathname);
160
+ ! return;
161
+ ! }
162
+ orig_wpathname = wpathname;
163
+
164
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
165
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
166
+ ***************
167
+ *** 26,30 ****
168
+ looks for to find the patch level (for the sccs version string). */
169
+
170
+ ! #define PATCHLEVEL 29
171
+
172
+ #endif /* _PATCHLEVEL_H_ */
173
+ --- 26,30 ----
174
+ looks for to find the patch level (for the sccs version string). */
175
+
176
+ ! #define PATCHLEVEL 30
177
+
178
+ #endif /* _PATCHLEVEL_H_ */
file added
+80
SOURCES/bash42-031 ADDED
@@ -0,0 +1,80 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-031
6
+
7
+ Bug-Reported-by: Max Horn <max@quendi.de>
8
+ Bug-Reference-ID: <20CC5C60-07C3-4E41-9817-741E48D407C5@quendi.de>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2012-06/msg00005.html
10
+
11
+ Bug-Description:
12
+
13
+ A change between bash-4.1 and bash-4.2 to prevent the readline input hook
14
+ from being called too frequently had the side effect of causing delays
15
+ when reading pasted input on systems such as Mac OS X. This patch fixes
16
+ those delays while retaining the bash-4.2 behavior.
17
+
18
+ Patch (apply with `patch -p0'):
19
+
20
+ *** ../bash-4.2-patched/lib/readline/input.c 2010-05-30 18:33:01.000000000 -0400
21
+ --- lib/readline/input.c 2012-06-25 21:08:42.000000000 -0400
22
+ ***************
23
+ *** 410,414 ****
24
+ rl_read_key ()
25
+ {
26
+ ! int c;
27
+
28
+ rl_key_sequence_length++;
29
+ --- 412,416 ----
30
+ rl_read_key ()
31
+ {
32
+ ! int c, r;
33
+
34
+ rl_key_sequence_length++;
35
+ ***************
36
+ *** 430,441 ****
37
+ while (rl_event_hook)
38
+ {
39
+ ! if (rl_gather_tyi () < 0) /* XXX - EIO */
40
+ {
41
+ rl_done = 1;
42
+ return ('\n');
43
+ }
44
+ RL_CHECK_SIGNALS ();
45
+ - if (rl_get_char (&c) != 0)
46
+ - break;
47
+ if (rl_done) /* XXX - experimental */
48
+ return ('\n');
49
+ --- 432,447 ----
50
+ while (rl_event_hook)
51
+ {
52
+ ! if (rl_get_char (&c) != 0)
53
+ ! break;
54
+ !
55
+ ! if ((r = rl_gather_tyi ()) < 0) /* XXX - EIO */
56
+ {
57
+ rl_done = 1;
58
+ return ('\n');
59
+ }
60
+ + else if (r == 1) /* read something */
61
+ + continue;
62
+ +
63
+ RL_CHECK_SIGNALS ();
64
+ if (rl_done) /* XXX - experimental */
65
+ return ('\n');
66
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
67
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
68
+ ***************
69
+ *** 26,30 ****
70
+ looks for to find the patch level (for the sccs version string). */
71
+
72
+ ! #define PATCHLEVEL 30
73
+
74
+ #endif /* _PATCHLEVEL_H_ */
75
+ --- 26,30 ----
76
+ looks for to find the patch level (for the sccs version string). */
77
+
78
+ ! #define PATCHLEVEL 31
79
+
80
+ #endif /* _PATCHLEVEL_H_ */
file added
+75
SOURCES/bash42-032 ADDED
@@ -0,0 +1,75 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-032
6
+
7
+ Bug-Reported-by: Ruediger Kuhlmann <RKuhlmann@orga-systems.com>
8
+ Bug-Reference-ID: <OFDE975207.0C3622E5-ONC12579F3.00361A06-C12579F3.00365E39@orga-systems.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-05/msg00010.html
10
+
11
+ Bug-Description:
12
+
13
+ Bash-4.2 has problems with DEL characters in the expanded value of variables
14
+ used in the same quoted string as variables that expand to nothing.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-20120427/subst.c 2012-04-22 16:19:10.000000000 -0400
19
+ --- subst.c 2012-05-07 16:06:35.000000000 -0400
20
+ ***************
21
+ *** 8152,8155 ****
22
+ --- 8152,8163 ----
23
+ dispose_word_desc (tword);
24
+
25
+ + /* Kill quoted nulls; we will add them back at the end of
26
+ + expand_word_internal if nothing else in the string */
27
+ + if (had_quoted_null && temp && QUOTED_NULL (temp))
28
+ + {
29
+ + FREE (temp);
30
+ + temp = (char *)NULL;
31
+ + }
32
+ +
33
+ goto add_string;
34
+ break;
35
+ ***************
36
+ *** 8556,8560 ****
37
+ if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
38
+ tword->flags |= W_QUOTED;
39
+ ! if (had_quoted_null)
40
+ tword->flags |= W_HASQUOTEDNULL;
41
+ list = make_word_list (tword, (WORD_LIST *)NULL);
42
+ --- 8564,8568 ----
43
+ if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
44
+ tword->flags |= W_QUOTED;
45
+ ! if (had_quoted_null && QUOTED_NULL (istring))
46
+ tword->flags |= W_HASQUOTEDNULL;
47
+ list = make_word_list (tword, (WORD_LIST *)NULL);
48
+ ***************
49
+ *** 8587,8591 ****
50
+ if (word->flags & W_NOEXPAND)
51
+ tword->flags |= W_NOEXPAND;
52
+ ! if (had_quoted_null)
53
+ tword->flags |= W_HASQUOTEDNULL; /* XXX */
54
+ list = make_word_list (tword, (WORD_LIST *)NULL);
55
+ --- 8595,8599 ----
56
+ if (word->flags & W_NOEXPAND)
57
+ tword->flags |= W_NOEXPAND;
58
+ ! if (had_quoted_null && QUOTED_NULL (istring))
59
+ tword->flags |= W_HASQUOTEDNULL; /* XXX */
60
+ list = make_word_list (tword, (WORD_LIST *)NULL);
61
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
62
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
63
+ ***************
64
+ *** 26,30 ****
65
+ looks for to find the patch level (for the sccs version string). */
66
+
67
+ ! #define PATCHLEVEL 31
68
+
69
+ #endif /* _PATCHLEVEL_H_ */
70
+ --- 26,30 ----
71
+ looks for to find the patch level (for the sccs version string). */
72
+
73
+ ! #define PATCHLEVEL 32
74
+
75
+ #endif /* _PATCHLEVEL_H_ */
file added
+57
SOURCES/bash42-033 ADDED
@@ -0,0 +1,57 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-033
6
+
7
+ Bug-Reported-by: David Leverton <levertond@googlemail.com>
8
+ Bug-Reference-ID: <4FCCE737.1060603@googlemail.com>
9
+ Bug-Reference-URL:
10
+
11
+ Bug-Description:
12
+
13
+ Bash uses a static buffer when expanding the /dev/fd prefix for the test
14
+ and conditional commands, among other uses, when it should use a dynamic
15
+ buffer to avoid buffer overflow.
16
+
17
+ Patch (apply with `patch -p0'):
18
+
19
+ *** ../bash-4.2-patched/lib/sh/eaccess.c 2011-01-08 20:50:10.000000000 -0500
20
+ --- lib/sh/eaccess.c 2012-06-04 21:06:43.000000000 -0400
21
+ ***************
22
+ *** 83,86 ****
23
+ --- 83,88 ----
24
+ struct stat *finfo;
25
+ {
26
+ + static char *pbuf = 0;
27
+ +
28
+ if (*path == '\0')
29
+ {
30
+ ***************
31
+ *** 107,111 ****
32
+ On most systems, with the notable exception of linux, this is
33
+ effectively a no-op. */
34
+ ! char pbuf[32];
35
+ strcpy (pbuf, DEV_FD_PREFIX);
36
+ strcat (pbuf, path + 8);
37
+ --- 109,113 ----
38
+ On most systems, with the notable exception of linux, this is
39
+ effectively a no-op. */
40
+ ! pbuf = xrealloc (pbuf, sizeof (DEV_FD_PREFIX) + strlen (path + 8));
41
+ strcpy (pbuf, DEV_FD_PREFIX);
42
+ strcat (pbuf, path + 8);
43
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
44
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
45
+ ***************
46
+ *** 26,30 ****
47
+ looks for to find the patch level (for the sccs version string). */
48
+
49
+ ! #define PATCHLEVEL 32
50
+
51
+ #endif /* _PATCHLEVEL_H_ */
52
+ --- 26,30 ----
53
+ looks for to find the patch level (for the sccs version string). */
54
+
55
+ ! #define PATCHLEVEL 33
56
+
57
+ #endif /* _PATCHLEVEL_H_ */
file added
+46
SOURCES/bash42-034 ADDED
@@ -0,0 +1,46 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-034
6
+
7
+ Bug-Reported-by: "Davide Brini" <dave_br@gmx.com>
8
+ Bug-Reference-ID: <20120604164154.69781EC04B@imaps.oficinas.atrapalo.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-06/msg00030.html
10
+
11
+ Bug-Description:
12
+
13
+ In bash-4.2, the history code would inappropriately add a semicolon to
14
+ multi-line compound array assignments when adding them to the history.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/parse.y 2011-11-21 18:03:36.000000000 -0500
19
+ --- parse.y 2012-06-07 12:48:47.000000000 -0400
20
+ ***************
21
+ *** 4900,4905 ****
22
+ --- 4916,4924 ----
23
+ return (current_command_line_count == 2 ? "\n" : "");
24
+ }
25
+
26
+ + if (parser_state & PST_COMPASSIGN)
27
+ + return (" ");
28
+ +
29
+ /* First, handle some special cases. */
30
+ /*(*/
31
+ /* If we just read `()', assume it's a function definition, and don't
32
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
33
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
34
+ ***************
35
+ *** 26,30 ****
36
+ looks for to find the patch level (for the sccs version string). */
37
+
38
+ ! #define PATCHLEVEL 33
39
+
40
+ #endif /* _PATCHLEVEL_H_ */
41
+ --- 26,30 ----
42
+ looks for to find the patch level (for the sccs version string). */
43
+
44
+ ! #define PATCHLEVEL 34
45
+
46
+ #endif /* _PATCHLEVEL_H_ */
file added
+66
SOURCES/bash42-035 ADDED
@@ -0,0 +1,66 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-035
6
+
7
+ Bug-Reported-by: Dan Douglas <ormaaj@gmail.com>
8
+ Bug-Reference-ID: <2766482.Ksm3GrSoYi@smorgbox>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-06/msg00071.html
10
+
11
+ Bug-Description:
12
+
13
+ When given a number of lines to read, `mapfile -n lines' reads one too many.
14
+
15
+ Patch (apply with `patch -p0'):
16
+
17
+ *** ../bash-4.2-patched/builtins/mapfile.def 2010-05-29 22:09:47.000000000 -0400
18
+ --- builtins/mapfile.def 2012-06-20 09:48:33.000000000 -0400
19
+ ***************
20
+ *** 196,206 ****
21
+ interrupt_immediately++;
22
+ for (array_index = origin, line_count = 1;
23
+ ! zgetline (fd, &line, &line_length, unbuffered_read) != -1;
24
+ ! array_index++, line_count++)
25
+ {
26
+ - /* Have we exceeded # of lines to store? */
27
+ - if (line_count_goal != 0 && line_count > line_count_goal)
28
+ - break;
29
+ -
30
+ /* Remove trailing newlines? */
31
+ if (flags & MAPF_CHOP)
32
+ --- 196,202 ----
33
+ interrupt_immediately++;
34
+ for (array_index = origin, line_count = 1;
35
+ ! zgetline (fd, &line, &line_length, unbuffered_read) != -1;
36
+ ! array_index++)
37
+ {
38
+ /* Remove trailing newlines? */
39
+ if (flags & MAPF_CHOP)
40
+ ***************
41
+ *** 218,221 ****
42
+ --- 214,222 ----
43
+
44
+ bind_array_element (entry, array_index, line, 0);
45
+ +
46
+ + /* Have we exceeded # of lines to store? */
47
+ + line_count++;
48
+ + if (line_count_goal != 0 && line_count > line_count_goal)
49
+ + break;
50
+ }
51
+
52
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
53
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
54
+ ***************
55
+ *** 26,30 ****
56
+ looks for to find the patch level (for the sccs version string). */
57
+
58
+ ! #define PATCHLEVEL 34
59
+
60
+ #endif /* _PATCHLEVEL_H_ */
61
+ --- 26,30 ----
62
+ looks for to find the patch level (for the sccs version string). */
63
+
64
+ ! #define PATCHLEVEL 35
65
+
66
+ #endif /* _PATCHLEVEL_H_ */
file added
+92
SOURCES/bash42-036 ADDED
@@ -0,0 +1,92 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-036
6
+
7
+ Bug-Reported-by: gregrwm <backuppc-users@whitleymott.net>
8
+ Bug-Reference-ID: <CAD+dB9B4JG+qUwZBQUwiQmVt0j6NDn=DDTxr9R+nkA8DL4KLJA@mail.gmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-05/msg00108.html
10
+
11
+ Bug-Description:
12
+
13
+ Bash-4.2 produces incorrect word splitting results when expanding
14
+ double-quoted $@ in the same string as and adjacent to other variable
15
+ expansions. The $@ should be split, the other expansions should not.
16
+
17
+ Patch (apply with `patch -p0'):
18
+
19
+ *** ../bash-4.2-patched/subst.c 2012-05-02 12:02:33.000000000 -0400
20
+ --- subst.c 2012-07-08 21:19:32.000000000 -0400
21
+ ***************
22
+ *** 7923,7927 ****
23
+ /* State flags */
24
+ int had_quoted_null;
25
+ ! int has_dollar_at;
26
+ int tflag;
27
+ int pflags; /* flags passed to param_expand */
28
+ --- 7923,7927 ----
29
+ /* State flags */
30
+ int had_quoted_null;
31
+ ! int has_dollar_at, temp_has_dollar_at;
32
+ int tflag;
33
+ int pflags; /* flags passed to param_expand */
34
+ ***************
35
+ *** 8128,8138 ****
36
+ *expanded_something = 1;
37
+
38
+ ! has_dollar_at = 0;
39
+ pflags = (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0;
40
+ if (word->flags & W_NOSPLIT2)
41
+ pflags |= PF_NOSPLIT2;
42
+ tword = param_expand (string, &sindex, quoted, expanded_something,
43
+ ! &has_dollar_at, &quoted_dollar_at,
44
+ &had_quoted_null, pflags);
45
+
46
+ if (tword == &expand_wdesc_error || tword == &expand_wdesc_fatal)
47
+ --- 8128,8139 ----
48
+ *expanded_something = 1;
49
+
50
+ ! temp_has_dollar_at = 0;
51
+ pflags = (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0;
52
+ if (word->flags & W_NOSPLIT2)
53
+ pflags |= PF_NOSPLIT2;
54
+ tword = param_expand (string, &sindex, quoted, expanded_something,
55
+ ! &temp_has_dollar_at, &quoted_dollar_at,
56
+ &had_quoted_null, pflags);
57
+ + has_dollar_at += temp_has_dollar_at;
58
+
59
+ if (tword == &expand_wdesc_error || tword == &expand_wdesc_fatal)
60
+ ***************
61
+ *** 8275,8281 ****
62
+ temp = (char *)NULL;
63
+
64
+ ! has_dollar_at = 0;
65
+ /* Need to get W_HASQUOTEDNULL flag through this function. */
66
+ ! list = expand_word_internal (tword, Q_DOUBLE_QUOTES, 0, &has_dollar_at, (int *)NULL);
67
+
68
+ if (list == &expand_word_error || list == &expand_word_fatal)
69
+ --- 8276,8283 ----
70
+ temp = (char *)NULL;
71
+
72
+ ! temp_has_dollar_at = 0; /* XXX */
73
+ /* Need to get W_HASQUOTEDNULL flag through this function. */
74
+ ! list = expand_word_internal (tword, Q_DOUBLE_QUOTES, 0, &temp_has_dollar_at, (int *)NULL);
75
+ ! has_dollar_at += temp_has_dollar_at;
76
+
77
+ if (list == &expand_word_error || list == &expand_word_fatal)
78
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
79
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
80
+ ***************
81
+ *** 26,30 ****
82
+ looks for to find the patch level (for the sccs version string). */
83
+
84
+ ! #define PATCHLEVEL 35
85
+
86
+ #endif /* _PATCHLEVEL_H_ */
87
+ --- 26,30 ----
88
+ looks for to find the patch level (for the sccs version string). */
89
+
90
+ ! #define PATCHLEVEL 36
91
+
92
+ #endif /* _PATCHLEVEL_H_ */
file added
+112
SOURCES/bash42-037 ADDED
@@ -0,0 +1,112 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-037
6
+
7
+ Bug-Reported-by: Jakub Filak
8
+ Bug-Reference-ID:
9
+ Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=813289
10
+
11
+ Bug-Description:
12
+
13
+ Attempting to redo (using `.') the vi editing mode `cc', `dd', or `yy'
14
+ commands leads to an infinite loop.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/lib/readline/vi_mode.c 2011-02-25 11:17:02.000000000 -0500
19
+ --- lib/readline/vi_mode.c 2012-06-02 12:24:47.000000000 -0400
20
+ ***************
21
+ *** 1235,1243 ****
22
+ r = rl_domove_motion_callback (_rl_vimvcxt);
23
+ }
24
+ ! else if (vi_redoing)
25
+ {
26
+ _rl_vimvcxt->motion = _rl_vi_last_motion;
27
+ r = rl_domove_motion_callback (_rl_vimvcxt);
28
+ }
29
+ #if defined (READLINE_CALLBACKS)
30
+ else if (RL_ISSTATE (RL_STATE_CALLBACK))
31
+ --- 1297,1313 ----
32
+ r = rl_domove_motion_callback (_rl_vimvcxt);
33
+ }
34
+ ! else if (vi_redoing && _rl_vi_last_motion != 'd') /* `dd' is special */
35
+ {
36
+ _rl_vimvcxt->motion = _rl_vi_last_motion;
37
+ r = rl_domove_motion_callback (_rl_vimvcxt);
38
+ }
39
+ + else if (vi_redoing) /* handle redoing `dd' here */
40
+ + {
41
+ + _rl_vimvcxt->motion = _rl_vi_last_motion;
42
+ + rl_mark = rl_end;
43
+ + rl_beg_of_line (1, key);
44
+ + RL_UNSETSTATE (RL_STATE_VIMOTION);
45
+ + r = vidomove_dispatch (_rl_vimvcxt);
46
+ + }
47
+ #if defined (READLINE_CALLBACKS)
48
+ else if (RL_ISSTATE (RL_STATE_CALLBACK))
49
+ ***************
50
+ *** 1317,1325 ****
51
+ r = rl_domove_motion_callback (_rl_vimvcxt);
52
+ }
53
+ ! else if (vi_redoing)
54
+ {
55
+ _rl_vimvcxt->motion = _rl_vi_last_motion;
56
+ r = rl_domove_motion_callback (_rl_vimvcxt);
57
+ }
58
+ #if defined (READLINE_CALLBACKS)
59
+ else if (RL_ISSTATE (RL_STATE_CALLBACK))
60
+ --- 1387,1403 ----
61
+ r = rl_domove_motion_callback (_rl_vimvcxt);
62
+ }
63
+ ! else if (vi_redoing && _rl_vi_last_motion != 'c') /* `cc' is special */
64
+ {
65
+ _rl_vimvcxt->motion = _rl_vi_last_motion;
66
+ r = rl_domove_motion_callback (_rl_vimvcxt);
67
+ }
68
+ + else if (vi_redoing) /* handle redoing `cc' here */
69
+ + {
70
+ + _rl_vimvcxt->motion = _rl_vi_last_motion;
71
+ + rl_mark = rl_end;
72
+ + rl_beg_of_line (1, key);
73
+ + RL_UNSETSTATE (RL_STATE_VIMOTION);
74
+ + r = vidomove_dispatch (_rl_vimvcxt);
75
+ + }
76
+ #if defined (READLINE_CALLBACKS)
77
+ else if (RL_ISSTATE (RL_STATE_CALLBACK))
78
+ ***************
79
+ *** 1378,1381 ****
80
+ --- 1456,1472 ----
81
+ r = rl_domove_motion_callback (_rl_vimvcxt);
82
+ }
83
+ + else if (vi_redoing && _rl_vi_last_motion != 'y') /* `yy' is special */
84
+ + {
85
+ + _rl_vimvcxt->motion = _rl_vi_last_motion;
86
+ + r = rl_domove_motion_callback (_rl_vimvcxt);
87
+ + }
88
+ + else if (vi_redoing) /* handle redoing `yy' here */
89
+ + {
90
+ + _rl_vimvcxt->motion = _rl_vi_last_motion;
91
+ + rl_mark = rl_end;
92
+ + rl_beg_of_line (1, key);
93
+ + RL_UNSETSTATE (RL_STATE_VIMOTION);
94
+ + r = vidomove_dispatch (_rl_vimvcxt);
95
+ + }
96
+ #if defined (READLINE_CALLBACKS)
97
+ else if (RL_ISSTATE (RL_STATE_CALLBACK))
98
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
99
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
100
+ ***************
101
+ *** 26,30 ****
102
+ looks for to find the patch level (for the sccs version string). */
103
+
104
+ ! #define PATCHLEVEL 36
105
+
106
+ #endif /* _PATCHLEVEL_H_ */
107
+ --- 26,30 ----
108
+ looks for to find the patch level (for the sccs version string). */
109
+
110
+ ! #define PATCHLEVEL 37
111
+
112
+ #endif /* _PATCHLEVEL_H_ */
file added
+47
SOURCES/bash42-038 ADDED
@@ -0,0 +1,47 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-038
6
+
7
+ Bug-Reported-by: armandsl@gmail.com
8
+ Bug-Reference-ID: <20120822112810.8D14920040@windmill.latviatours.lv>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-08/msg00049.html
10
+
11
+ Bug-Description:
12
+
13
+ If a backslash-newline (which is removed) with no other input is given as
14
+ input to `read', the shell tries to dereference a null pointer and seg faults.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/builtins/read.def 2012-03-11 17:52:44.000000000 -0400
19
+ --- builtins/read.def 2012-08-22 11:53:09.000000000 -0400
20
+ ***************
21
+ *** 792,796 ****
22
+ #endif
23
+
24
+ ! if (saw_escape)
25
+ {
26
+ t = dequote_string (input_string);
27
+ --- 847,851 ----
28
+ #endif
29
+
30
+ ! if (saw_escape && input_string && *input_string)
31
+ {
32
+ t = dequote_string (input_string);
33
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
34
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
35
+ ***************
36
+ *** 26,30 ****
37
+ looks for to find the patch level (for the sccs version string). */
38
+
39
+ ! #define PATCHLEVEL 37
40
+
41
+ #endif /* _PATCHLEVEL_H_ */
42
+ --- 26,30 ----
43
+ looks for to find the patch level (for the sccs version string). */
44
+
45
+ ! #define PATCHLEVEL 38
46
+
47
+ #endif /* _PATCHLEVEL_H_ */
file added
+58
SOURCES/bash42-039 ADDED
@@ -0,0 +1,58 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-039
6
+
7
+ Bug-Reported-by: Dan Douglas <ormaaj@gmail.com>
8
+ Bug-Reference-ID: <1498458.MpVlmOXDB7@smorgbox>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-09/msg00008.html
10
+
11
+ Bug-Description:
12
+
13
+ Under certain circumstances, bash attempts to expand variables in arithmetic
14
+ expressions even when evaluation is being suppressed.
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/expr.c 2011-11-21 18:03:35.000000000 -0500
19
+ --- expr.c 2012-09-09 16:31:18.000000000 -0400
20
+ ***************
21
+ *** 1010,1013 ****
22
+ --- 1073,1082 ----
23
+ #endif
24
+
25
+ + /*itrace("expr_streval: %s: noeval = %d", tok, noeval);*/
26
+ + /* If we are suppressing evaluation, just short-circuit here instead of
27
+ + going through the rest of the evaluator. */
28
+ + if (noeval)
29
+ + return (0);
30
+ +
31
+ /* [[[[[ */
32
+ #if defined (ARRAY_VARS)
33
+ ***************
34
+ *** 1183,1186 ****
35
+ --- 1256,1263 ----
36
+
37
+ *cp = '\0';
38
+ + /* XXX - watch out for pointer aliasing issues here */
39
+ + if (curlval.tokstr && curlval.tokstr == tokstr)
40
+ + init_lvalue (&curlval);
41
+ +
42
+ FREE (tokstr);
43
+ tokstr = savestring (tp);
44
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
45
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
46
+ ***************
47
+ *** 26,30 ****
48
+ looks for to find the patch level (for the sccs version string). */
49
+
50
+ ! #define PATCHLEVEL 38
51
+
52
+ #endif /* _PATCHLEVEL_H_ */
53
+ --- 26,30 ----
54
+ looks for to find the patch level (for the sccs version string). */
55
+
56
+ ! #define PATCHLEVEL 39
57
+
58
+ #endif /* _PATCHLEVEL_H_ */
file added
+56
SOURCES/bash42-040 ADDED
@@ -0,0 +1,56 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-040
6
+
7
+ Bug-Reported-by: Andrey Zaitsev <jstcdr@gmail.com>
8
+ Bug-Reference-ID: <CAEZVQT5PJ1Mb_Zh8LT5qz8sv+-9Q6hGfQ5DU9ZxdJ+gV7xBUaQ@mail.gmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00144.html
10
+
11
+ Bug-Description:
12
+
13
+ Output redirection applied to builtin commands missed I/O errors if
14
+ they happened when the file descriptor was closed, rather than on write
15
+ (e.g., like with an out-of-space error on a remote NFS file system).
16
+
17
+ Patch (apply with `patch -p0'):
18
+
19
+ *** ../bash-4.2-patched/redir.c 2011-01-02 16:00:31.000000000 -0500
20
+ --- redir.c 2012-04-24 20:42:12.000000000 -0400
21
+ ***************
22
+ *** 1092,1099 ****
23
+ #if defined (BUFFERED_INPUT)
24
+ check_bash_input (redirector);
25
+ ! close_buffered_fd (redirector);
26
+ #else /* !BUFFERED_INPUT */
27
+ ! close (redirector);
28
+ #endif /* !BUFFERED_INPUT */
29
+ }
30
+ break;
31
+ --- 1092,1101 ----
32
+ #if defined (BUFFERED_INPUT)
33
+ check_bash_input (redirector);
34
+ ! r = close_buffered_fd (redirector);
35
+ #else /* !BUFFERED_INPUT */
36
+ ! r = close (redirector);
37
+ #endif /* !BUFFERED_INPUT */
38
+ + if (r < 0 && (flags & RX_INTERNAL) && (errno == EIO || errno == ENOSPC))
39
+ + REDIRECTION_ERROR (r, errno, -1);
40
+ }
41
+ break;
42
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
43
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
44
+ ***************
45
+ *** 26,30 ****
46
+ looks for to find the patch level (for the sccs version string). */
47
+
48
+ ! #define PATCHLEVEL 39
49
+
50
+ #endif /* _PATCHLEVEL_H_ */
51
+ --- 26,30 ----
52
+ looks for to find the patch level (for the sccs version string). */
53
+
54
+ ! #define PATCHLEVEL 40
55
+
56
+ #endif /* _PATCHLEVEL_H_ */
file added
+47
SOURCES/bash42-041 ADDED
@@ -0,0 +1,47 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-041
6
+
7
+ Bug-Reported-by: Andrey Borzenkov <arvidjaar@gmail.com>
8
+ Bug-Reference-ID: <20121202205200.2134478e@opensuse.site>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-12/msg00008.html
10
+
11
+ Bug-Description:
12
+
13
+ Process substitution incorrectly inherited a flag that inhibited using the
14
+ (local) temporary environment for variable lookups if it was providing
15
+ the filename to a redirection. The intent the flag is to enforce the
16
+ Posix command expansion ordering rules.
17
+
18
+ Patch (apply with `patch -p0'):
19
+
20
+ *** ../bash-4.2-patched/subst.c 2012-07-14 15:53:20.000000000 -0400
21
+ --- subst.c 2012-12-02 22:26:54.000000000 -0500
22
+ ***************
23
+ *** 5125,5128 ****
24
+ --- 5129,5136 ----
25
+ #endif /* HAVE_DEV_FD */
26
+
27
+ + /* subshells shouldn't have this flag, which controls using the temporary
28
+ + environment for variable lookups. */
29
+ + expanding_redir = 0;
30
+ +
31
+ result = parse_and_execute (string, "process substitution", (SEVAL_NONINT|SEVAL_NOHIST));
32
+
33
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
34
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
35
+ ***************
36
+ *** 26,30 ****
37
+ looks for to find the patch level (for the sccs version string). */
38
+
39
+ ! #define PATCHLEVEL 40
40
+
41
+ #endif /* _PATCHLEVEL_H_ */
42
+ --- 26,30 ----
43
+ looks for to find the patch level (for the sccs version string). */
44
+
45
+ ! #define PATCHLEVEL 41
46
+
47
+ #endif /* _PATCHLEVEL_H_ */
file added
+57
SOURCES/bash42-042 ADDED
@@ -0,0 +1,57 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-042
6
+
7
+ Bug-Reported-by: Adam Pippin <adam@gp-inc.ca>
8
+ Bug-Reference-ID: <CAPYbNHr6ucZFOoWsRdUJj6KP3Ju0j1bkESa_cmb7iU+kZwdVpg@mail.gmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-11/msg00087.html
10
+
11
+ Bug-Description:
12
+
13
+ Compilation failed after specifying the `--enable-minimal-config' option to
14
+ configure (more specifically, specifying `--disable-alias').
15
+
16
+ Patch (apply with `patch -p0'):
17
+
18
+ *** ../bash-4.2-patched/parse.y 2012-07-08 21:53:33.000000000 -0400
19
+ --- parse.y 2012-10-14 20:20:34.000000000 -0400
20
+ ***************
21
+ *** 2394,2397 ****
22
+ --- 2392,2396 ----
23
+ to consume the quoted newline and move to the next character in
24
+ the expansion. */
25
+ + #if defined (ALIAS)
26
+ if (expanding_alias () && shell_input_line[shell_input_line_index+1] == '\0')
27
+ {
28
+ ***************
29
+ *** 2404,2408 ****
30
+ goto next_alias_char; /* and get next character */
31
+ }
32
+ ! else
33
+ goto restart_read;
34
+ }
35
+ --- 2403,2408 ----
36
+ goto next_alias_char; /* and get next character */
37
+ }
38
+ ! else
39
+ ! #endif
40
+ goto restart_read;
41
+ }
42
+
43
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
44
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
45
+ ***************
46
+ *** 26,30 ****
47
+ looks for to find the patch level (for the sccs version string). */
48
+
49
+ ! #define PATCHLEVEL 41
50
+
51
+ #endif /* _PATCHLEVEL_H_ */
52
+ --- 26,30 ----
53
+ looks for to find the patch level (for the sccs version string). */
54
+
55
+ ! #define PATCHLEVEL 42
56
+
57
+ #endif /* _PATCHLEVEL_H_ */
file added
+65
SOURCES/bash42-043 ADDED
@@ -0,0 +1,65 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-043
6
+
7
+ Bug-Reported-by: konsolebox <konsolebox@gmail.com>
8
+ Bug-Reference-ID: <CAJnmqwZuGKLgMsMwxRK4LL+2NN+HgvmKzrnode99QBGrcgX1Lw@mail.gmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2013-01/msg00138.html
10
+
11
+ Bug-Description:
12
+
13
+ When SIGCHLD is trapped, and a SIGCHLD trap handler runs when a pending
14
+ `read -t' invocation times out and generates SIGALRM, bash can crash with
15
+ a segmentation fault.
16
+
17
+ Patch (apply with `patch -p0'):
18
+
19
+ *** ../bash-4.2-patched/builtins/read.def 2012-10-31 21:22:51.000517000 -0400
20
+ --- builtins/read.def 2013-01-25 10:28:16.000038000 -0500
21
+ ***************
22
+ *** 386,393 ****
23
+ /* Tricky. The top of the unwind-protect stack is the free of
24
+ input_string. We want to run all the rest and use input_string,
25
+ ! so we have to remove it from the stack. */
26
+ ! remove_unwind_protect ();
27
+ ! run_unwind_frame ("read_builtin");
28
+ input_string[i] = '\0'; /* make sure it's terminated */
29
+ retval = 128+SIGALRM;
30
+ goto assign_vars;
31
+ --- 386,403 ----
32
+ /* Tricky. The top of the unwind-protect stack is the free of
33
+ input_string. We want to run all the rest and use input_string,
34
+ ! so we have to save input_string temporarily, run the unwind-
35
+ ! protects, then restore input_string so we can use it later. */
36
+ !
37
+ input_string[i] = '\0'; /* make sure it's terminated */
38
+ + if (i == 0)
39
+ + {
40
+ + t = (char *)xmalloc (1);
41
+ + t[0] = 0;
42
+ + }
43
+ + else
44
+ + t = savestring (input_string);
45
+ +
46
+ + run_unwind_frame ("read_builtin");
47
+ + input_string = t;
48
+ retval = 128+SIGALRM;
49
+ goto assign_vars;
50
+
51
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
52
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
53
+ ***************
54
+ *** 26,30 ****
55
+ looks for to find the patch level (for the sccs version string). */
56
+
57
+ ! #define PATCHLEVEL 42
58
+
59
+ #endif /* _PATCHLEVEL_H_ */
60
+ --- 26,30 ----
61
+ looks for to find the patch level (for the sccs version string). */
62
+
63
+ ! #define PATCHLEVEL 43
64
+
65
+ #endif /* _PATCHLEVEL_H_ */
file added
+70
SOURCES/bash42-044 ADDED
@@ -0,0 +1,70 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-044
6
+
7
+ Bug-Reported-by: "Dashing" <dashing@hushmail.com>
8
+ Bug-Reference-ID: <20130211175049.D90786F446@smtp.hushmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2013-02/msg00030.html
10
+
11
+ Bug-Description:
12
+
13
+ When converting a multibyte string to a wide character string as part of
14
+ pattern matching, bash does not handle the end of the string correctly,
15
+ causing the search for the NUL to go beyond the end of the string and
16
+ reference random memory. Depending on the contents of that memory, bash
17
+ can produce errors or crash.
18
+
19
+ Patch (apply with `patch -p0'):
20
+
21
+ *** ../bash-4.2-patched/lib/glob/xmbsrtowcs.c 2012-07-08 21:53:19.000000000 -0400
22
+ --- lib/glob/xmbsrtowcs.c 2013-02-12 12:00:39.000000000 -0500
23
+ ***************
24
+ *** 217,220 ****
25
+ --- 217,226 ----
26
+ n = mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
27
+
28
+ + if (n == 0 && p == 0)
29
+ + {
30
+ + wsbuf[wcnum] = L'\0';
31
+ + break;
32
+ + }
33
+ +
34
+ /* Compensate for taking single byte on wcs conversion failure above. */
35
+ if (wcslength == 1 && (n == 0 || n == (size_t)-1))
36
+ ***************
37
+ *** 222,226 ****
38
+ state = tmp_state;
39
+ p = tmp_p;
40
+ ! wsbuf[wcnum++] = *p++;
41
+ }
42
+ else
43
+ --- 228,238 ----
44
+ state = tmp_state;
45
+ p = tmp_p;
46
+ ! wsbuf[wcnum] = *p;
47
+ ! if (*p == 0)
48
+ ! break;
49
+ ! else
50
+ ! {
51
+ ! wcnum++; p++;
52
+ ! }
53
+ }
54
+ else
55
+
56
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
57
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
58
+ ***************
59
+ *** 26,30 ****
60
+ looks for to find the patch level (for the sccs version string). */
61
+
62
+ ! #define PATCHLEVEL 43
63
+
64
+ #endif /* _PATCHLEVEL_H_ */
65
+ --- 26,30 ----
66
+ looks for to find the patch level (for the sccs version string). */
67
+
68
+ ! #define PATCHLEVEL 44
69
+
70
+ #endif /* _PATCHLEVEL_H_ */
file added
+53
SOURCES/bash42-045 ADDED
@@ -0,0 +1,53 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-045
6
+
7
+ Bug-Reported-by: Stephane Chazelas <stephane.chazelas@gmail.com>
8
+ Bug-Reference-ID: <20130218195539.GA9620@chaz.gmail.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2013-02/msg00080.html
10
+
11
+ Bug-Description:
12
+
13
+ The <&n- and >&n- redirections, which move one file descriptor to another,
14
+ leave the file descriptor closed when applied to builtins or compound
15
+ commands.
16
+
17
+ Patch (apply with `patch -p0'):
18
+
19
+ *** ../bash-4.2-patched/redir.c 2013-01-30 11:56:09.000000000 -0500
20
+ --- redir.c 2013-02-19 09:38:36.000000000 -0500
21
+ ***************
22
+ *** 1008,1011 ****
23
+ --- 1008,1021 ----
24
+ REDIRECTION_ERROR (r, errno, -1);
25
+ }
26
+ + if ((flags & RX_UNDOABLE) && (ri == r_move_input || ri == r_move_output))
27
+ + {
28
+ + /* r_move_input and r_move_output add an additional close()
29
+ + that needs to be undone */
30
+ + if (fcntl (redirector, F_GETFD, 0) != -1)
31
+ + {
32
+ + r = add_undo_redirect (redir_fd, r_close_this, -1);
33
+ + REDIRECTION_ERROR (r, errno, -1);
34
+ + }
35
+ + }
36
+ #if defined (BUFFERED_INPUT)
37
+ check_bash_input (redirector);
38
+
39
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
40
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
41
+ ***************
42
+ *** 26,30 ****
43
+ looks for to find the patch level (for the sccs version string). */
44
+
45
+ ! #define PATCHLEVEL 44
46
+
47
+ #endif /* _PATCHLEVEL_H_ */
48
+ --- 26,30 ----
49
+ looks for to find the patch level (for the sccs version string). */
50
+
51
+ ! #define PATCHLEVEL 45
52
+
53
+ #endif /* _PATCHLEVEL_H_ */
file added
+55
SOURCES/bash42-046 ADDED
@@ -0,0 +1,55 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-046
6
+
7
+ Bug-Reported-by: "Theodoros V. Kalamatianos" <thkala@gmail.com>
8
+ Bug-Reference-ID: <20140112011131.GE17667@infinity.metashade.com>
9
+ Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-01/msg00044.html
10
+
11
+ Bug-Description:
12
+
13
+ Bash-4.2 patch 32 introduced a problem with "$@" and arrays expanding empty
14
+ positional parameters or array elements when using substring expansion,
15
+ pattern substitution, or case modfication. The empty parameters or array
16
+ elements are removed instead of expanding to empty strings ("").
17
+
18
+ Patch (apply with `patch -p0'):
19
+
20
+ *** ../bash-4.2-patched/subst.c 2012-12-31 11:52:56.000000000 -0500
21
+ --- subst.c 2014-03-31 14:19:56.000000000 -0400
22
+ ***************
23
+ *** 7243,7247 ****
24
+ ret = alloc_word_desc ();
25
+ ret->word = temp1;
26
+ ! if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
27
+ ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
28
+ return ret;
29
+ --- 7243,7253 ----
30
+ ret = alloc_word_desc ();
31
+ ret->word = temp1;
32
+ ! /* We test quoted_dollar_atp because we want variants with double-quoted
33
+ ! "$@" to take a different code path. In fact, we make sure at the end
34
+ ! of expand_word_internal that we're only looking at these flags if
35
+ ! quoted_dollar_at == 0. */
36
+ ! if (temp1 &&
37
+ ! (quoted_dollar_atp == 0 || *quoted_dollar_atp == 0) &&
38
+ ! QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
39
+ ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
40
+ return ret;
41
+ *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
42
+ --- patchlevel.h Thu Feb 24 21:41:34 2011
43
+ ***************
44
+ *** 26,30 ****
45
+ looks for to find the patch level (for the sccs version string). */
46
+
47
+ ! #define PATCHLEVEL 45
48
+
49
+ #endif /* _PATCHLEVEL_H_ */
50
+ --- 26,30 ----
51
+ looks for to find the patch level (for the sccs version string). */
52
+
53
+ ! #define PATCHLEVEL 46
54
+
55
+ #endif /* _PATCHLEVEL_H_ */
file added
+44
SOURCES/bash42-052 ADDED
@@ -0,0 +1,44 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-052
6
+
7
+ Bug-Reported-by: Michal Zalewski <lcamtuf@coredump.cx>
8
+ Bug-Reference-ID:
9
+ Bug-Reference-URL:
10
+
11
+ Bug-Description:
12
+
13
+ When bash is parsing a function definition that contains a here-document
14
+ delimited by end-of-file (or end-of-string), it leaves the closing delimiter
15
+ uninitialized. This can result in an invalid memory access when the parsed
16
+ function is later copied.
17
+
18
+ Patch (apply with `patch -p0'):
19
+
20
+ *** ../bash-4.2.51/make_cmd.c 2009-09-11 17:26:12.000000000 -0400
21
+ --- make_cmd.c 2014-10-02 11:26:58.000000000 -0400
22
+ ***************
23
+ *** 690,693 ****
24
+ --- 690,694 ----
25
+ temp->redirector = source;
26
+ temp->redirectee = dest_and_filename;
27
+ + temp->here_doc_eof = 0;
28
+ temp->instruction = instruction;
29
+ temp->flags = 0;
30
+ *** ../bash-4.2.51/copy_cmd.c 2009-09-11 16:28:02.000000000 -0400
31
+ --- copy_cmd.c 2014-10-02 11:26:58.000000000 -0400
32
+ ***************
33
+ *** 127,131 ****
34
+ case r_reading_until:
35
+ case r_deblank_reading_until:
36
+ ! new_redirect->here_doc_eof = savestring (redirect->here_doc_eof);
37
+ /*FALLTHROUGH*/
38
+ case r_reading_string:
39
+ --- 127,131 ----
40
+ case r_reading_until:
41
+ case r_deblank_reading_until:
42
+ ! new_redirect->here_doc_eof = redirect->here_doc_eof ? savestring (redirect->here_doc_eof) : 0;
43
+ /*FALLTHROUGH*/
44
+ case r_reading_string:
file added
+117
SOURCES/bash42-053 ADDED
@@ -0,0 +1,117 @@
1
+ BASH PATCH REPORT
2
+ =================
3
+
4
+ Bash-Release: 4.2
5
+ Patch-ID: bash42-053
6
+
7
+ Bug-Reported-by: Michal Zalewski <lcamtuf@coredump.cx>
8
+ Bug-Reference-ID:
9
+ Bug-Reference-URL:
10
+
11
+ Bug-Description:
12
+
13
+ A combination of nested command substitutions and function importing from
14
+ the environment can cause bash to execute code appearing in the environment
15
+ variable value following the function definition.
16
+
17
+ Patch (apply with `patch -p0'):
18
+
19
+ *** ../bash-4.2.52/builtins/evalstring.c 2014-09-16 19:35:45.000000000 -0400
20
+ --- builtins/evalstring.c 2014-10-04 15:00:26.000000000 -0400
21
+ ***************
22
+ *** 262,271 ****
23
+ struct fd_bitmap *bitmap;
24
+
25
+ ! if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def)
26
+ {
27
+ ! internal_warning ("%s: ignoring function definition attempt", from_file);
28
+ ! should_jump_to_top_level = 0;
29
+ ! last_result = last_command_exit_value = EX_BADUSAGE;
30
+ ! break;
31
+ }
32
+
33
+ --- 262,284 ----
34
+ struct fd_bitmap *bitmap;
35
+
36
+ ! if (flags & SEVAL_FUNCDEF)
37
+ {
38
+ ! char *x;
39
+ !
40
+ ! /* If the command parses to something other than a straight
41
+ ! function definition, or if we have not consumed the entire
42
+ ! string, or if the parser has transformed the function
43
+ ! name (as parsing will if it begins or ends with shell
44
+ ! whitespace, for example), reject the attempt */
45
+ ! if (command->type != cm_function_def ||
46
+ ! ((x = parser_remaining_input ()) && *x) ||
47
+ ! (STREQ (from_file, command->value.Function_def->name->word) == 0))
48
+ ! {
49
+ ! internal_warning (_("%s: ignoring function definition attempt"), from_file);
50
+ ! should_jump_to_top_level = 0;
51
+ ! last_result = last_command_exit_value = EX_BADUSAGE;
52
+ ! reset_parser ();
53
+ ! break;
54
+ ! }
55
+ }
56
+
57
+ ***************
58
+ *** 332,336 ****
59
+
60
+ if (flags & SEVAL_ONECMD)
61
+ ! break;
62
+ }
63
+ }
64
+ --- 345,352 ----
65
+
66
+ if (flags & SEVAL_ONECMD)
67
+ ! {
68
+ ! reset_parser ();
69
+ ! break;
70
+ ! }
71
+ }
72
+ }
73
+ *** ../bash-4.2.52/parse.y 2014-09-30 19:24:19.000000000 -0400
74
+ --- parse.y 2014-10-04 15:00:26.000000000 -0400
75
+ ***************
76
+ *** 2436,2439 ****
77
+ --- 2436,2449 ----
78
+ }
79
+
80
+ + char *
81
+ + parser_remaining_input ()
82
+ + {
83
+ + if (shell_input_line == 0)
84
+ + return 0;
85
+ + if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len)
86
+ + return '\0'; /* XXX */
87
+ + return (shell_input_line + shell_input_line_index);
88
+ + }
89
+ +
90
+ #ifdef INCLUDE_UNUSED
91
+ /* Back the input pointer up by one, effectively `ungetting' a character. */
92
+ ***************
93
+ *** 3891,3896 ****
94
+ /* reset_parser clears shell_input_line and associated variables */
95
+ restore_input_line_state (&ls);
96
+ ! if (interactive)
97
+ ! token_to_read = 0;
98
+
99
+ /* Need to find how many characters parse_and_execute consumed, update
100
+ --- 3901,3906 ----
101
+ /* reset_parser clears shell_input_line and associated variables */
102
+ restore_input_line_state (&ls);
103
+ !
104
+ ! token_to_read = 0;
105
+
106
+ /* Need to find how many characters parse_and_execute consumed, update
107
+ *** ../bash-4.2.52/shell.h 2011-11-21 18:03:32.000000000 -0500
108
+ --- shell.h 2014-10-04 15:00:26.000000000 -0400
109
+ ***************
110
+ *** 178,181 ****
111
+ --- 178,183 ----
112
+
113
+ /* Let's try declaring these here. */
114
+ + extern char *parser_remaining_input __P((void));
115
+ +
116
+ extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *));
117
+ extern void restore_parser_state __P((sh_parser_state_t *));
SOURCES/dot-bash_logout ADDED
@@ -0,0 +1,2 @@
1
+ # ~/.bash_logout
2
+
SOURCES/dot-bash_profile ADDED
@@ -0,0 +1,12 @@
1
+ # .bash_profile
2
+
3
+ # Get the aliases and functions
4
+ if [ -f ~/.bashrc ]; then
5
+ . ~/.bashrc
6
+ fi
7
+
8
+ # User specific environment and startup programs
9
+
10
+ PATH=$PATH:$HOME/.local/bin:$HOME/bin
11
+
12
+ export PATH
file added
+11
SOURCES/dot-bashrc ADDED
@@ -0,0 +1,11 @@
1
+ # .bashrc
2
+
3
+ # Source global definitions
4
+ if [ -f /etc/bashrc ]; then
5
+ . /etc/bashrc
6
+ fi
7
+
8
+ # Uncomment the following line if you don't like systemctl's auto-paging feature:
9
+ # export SYSTEMD_PAGER=
10
+
11
+ # User specific aliases and functions
SOURCES/fix-shopt-lastpipe-mode-crash.patch ADDED
@@ -0,0 +1,48 @@
1
+ From 0eb5e47f531b49c8d048c9ae9657eeb63f49a9f3 Mon Sep 17 00:00:00 2001
2
+ From: Siteshwar Vashisht <svashisht@redhat.com>
3
+ Date: Fri, 13 May 2016 01:34:06 +0530
4
+ Subject: [PATCH] Fix shopt lastpipe mode crash
5
+
6
+ ---
7
+ execute_cmd.c | 23 ++++++++++++++++++++---
8
+ 1 file changed, 20 insertions(+), 3 deletions(-)
9
+
10
+ diff --git a/execute_cmd.c b/execute_cmd.c
11
+ index c5cf6d2..7b22460 100644
12
+ --- a/execute_cmd.c
13
+ +++ b/execute_cmd.c
14
+ @@ -2254,11 +2254,28 @@ execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close)
15
+ if (lastpipe_flag)
16
+ {
17
+ #if defined (JOB_CONTROL)
18
+ - append_process (savestring (the_printed_command), dollar_dollar_pid, exec_result, lastpipe_jid);
19
+ -#endif
20
+ + if (INVALID_JOB (lastpipe_jid) == 0)
21
+ + {
22
+ + append_process (savestring (the_printed_command_except_trap), dollar_dollar_pid, exec_result, lastpipe_jid);
23
+ + lstdin = wait_for (lastpid);
24
+ + }
25
+ + else
26
+ + lstdin = wait_for_single_pid (lastpid); /* checks bgpids list */
27
+ +#else
28
+ lstdin = wait_for (lastpid);
29
+ +#endif
30
+ +
31
+ #if defined (JOB_CONTROL)
32
+ - exec_result = job_exit_status (lastpipe_jid);
33
+ + /* If wait_for removes the job from the jobs table, use result of last
34
+ + command as pipeline's exit status as usual. The jobs list can get
35
+ + frozen and unfrozen at inconvenient times if there are multiple pipelines
36
+ + running simultaneously. */
37
+ + if (INVALID_JOB (lastpipe_jid) == 0)
38
+ + exec_result = job_exit_status (lastpipe_jid);
39
+ + else if (pipefail_opt)
40
+ + exec_result = exec_result | lstdin; /* XXX */
41
+ + /* otherwise we use exec_result */
42
+ +
43
+ #endif
44
+ unfreeze_jobs_list ();
45
+ }
46
+ --
47
+ 2.5.5
48
+
file added
+1772
SPECS/bash.spec ADDED
@@ -0,0 +1,1772 @@
1
+ #% define beta_tag rc2
2
+ %define patchleveltag .46
3
+ %define baseversion 4.2
4
+ %bcond_without tests
5
+
6
+ Version: %{baseversion}%{patchleveltag}
7
+ Name: bash
8
+ Summary: The GNU Bourne Again shell
9
+ Release: 30%{?dist}
10
+ Group: System Environment/Shells
11
+ License: GPLv3+
12
+ Url: http://www.gnu.org/software/bash
13
+ Source0: ftp://ftp.gnu.org/gnu/bash/bash-%{baseversion}.tar.gz
14
+
15
+ # For now there isn't any doc
16
+ #Source2: ftp://ftp.gnu.org/gnu/bash/bash-doc-%{version}.tar.gz
17
+
18
+ Source1: dot-bashrc
19
+ Source2: dot-bash_profile
20
+ Source3: dot-bash_logout
21
+
22
+ # Official upstream patches
23
+ Patch001: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-001
24
+ Patch002: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-002
25
+ Patch003: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-003
26
+ Patch004: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-004
27
+ Patch005: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-005
28
+ Patch006: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-006
29
+ Patch007: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-007
30
+ Patch008: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-008
31
+ Patch009: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-009
32
+ Patch010: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-010
33
+ Patch011: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-011
34
+ Patch012: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-012
35
+ Patch013: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-013
36
+ Patch014: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-014
37
+ Patch015: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-015
38
+ Patch016: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-016
39
+ Patch017: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-017
40
+ Patch018: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-018
41
+ Patch019: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-019
42
+ Patch020: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-020
43
+ Patch021: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-021
44
+ Patch022: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-022
45
+ Patch023: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-023
46
+ Patch024: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-024
47
+ Patch025: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-025
48
+ Patch026: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-026
49
+ Patch027: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-027
50
+ Patch028: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-028
51
+ Patch029: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-029
52
+ Patch030: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-030
53
+ Patch031: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-031
54
+ Patch032: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-032
55
+ Patch033: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-033
56
+ Patch034: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-034
57
+ Patch035: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-035
58
+ Patch036: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-036
59
+ Patch037: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-037
60
+ Patch038: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-038
61
+ Patch039: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-039
62
+ Patch040: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-040
63
+ Patch041: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-041
64
+ Patch042: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-042
65
+ Patch043: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-043
66
+ Patch044: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-044
67
+ Patch045: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-045
68
+ Patch046: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-046
69
+ #1175647 - shellshock related parser bugs
70
+ Patch052: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-052
71
+ Patch053: ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-053
72
+
73
+ # Other patches
74
+ Patch101: bash-2.02-security.patch
75
+ Patch102: bash-2.03-paths.patch
76
+ Patch103: bash-2.03-profile.patch
77
+ Patch104: bash-2.05a-interpreter.patch
78
+ Patch105: bash-2.05b-debuginfo.patch
79
+ Patch106: bash-2.05b-manso.patch
80
+ Patch107: bash-2.05b-pgrp_sync.patch
81
+ Patch108: bash-2.05b-readline-oom.patch
82
+ Patch109: bash-2.05b-xcc.patch
83
+ Patch110: bash-3.2-audit.patch
84
+ Patch111: bash-3.2-ssh_source_bash.patch
85
+ Patch112: bash-bashbug.patch
86
+ Patch113: bash-infotags.patch
87
+ Patch114: bash-requires.patch
88
+ Patch115: bash-setlocale.patch
89
+ Patch116: bash-tty-tests.patch
90
+
91
+ # 484809, check if interp section is NOBITS
92
+ Patch117: bash-4.0-nobits.patch
93
+
94
+ # Do the same CFLAGS in generated Makefile in examples
95
+ Patch118: bash-4.1-examples.patch
96
+
97
+ # Builtins like echo and printf won't report errors
98
+ # when output does not succeed due to EPIPE
99
+ Patch119: bash-4.1-broken_pipe.patch
100
+
101
+ # Enable system-wide .bash_logout for login shells
102
+ Patch120: bash-4.2-rc2-logout.patch
103
+
104
+ # Static analyzis shows some issues in bash-2.05a-interpreter.patch
105
+ Patch121: bash-4.2-coverity.patch
106
+
107
+ # Don't call malloc in signal handler
108
+ Patch122: bash-4.1-defer-sigchld-trap.patch
109
+
110
+ # 799958, updated info about trap
111
+ Patch123: bash-4.2-manpage_trap.patch
112
+
113
+ # 695656, block the signal and unblock it after the new handler is installed
114
+ Patch124: bash-4.2-signal.patch
115
+
116
+ # https://www.securecoding.cert.org/confluence/display/seccode/INT32-C.+Ensure+that+operations+on+signed+integers+do+not+result+in+overflow
117
+ Patch125: bash-4.2-size_type.patch
118
+
119
+ # 903833, Fix missing close(), fixes fd leaks
120
+ Patch126: bash-4.2-missing_closes.patch
121
+ Patch127: bash-4.1-trap.patch
122
+
123
+ # 1112709 - mention ulimit -c and -f POSIX block size
124
+ Patch128: bash-4.2-man-ulimit.patch
125
+
126
+ # 1116301 - inhibit brace expansion in some cases
127
+ Patch129: bash-4.2-brace-expand.patch
128
+
129
+ # 1102813 - fix bash visual mode
130
+ Patch130: bash-4.2-noecho.patch
131
+
132
+ # 1126370 - provide a better description for some bash builtins
133
+ Patch131: bash-4.2-manpage.patch
134
+
135
+ # 1126396 - prevent bash from hanging with certain history settings
136
+ Patch132: bash-4.2-history-hang.patch
137
+
138
+ # 1126401 - properly document extglob behaviour
139
+ Patch133: bash-4.2-extglob-man.patch
140
+
141
+ # 1141648 - properly document extglob behaviour
142
+ Patch134: bash-4.2-env-inject.patch
143
+
144
+ # 1146324 - cve-2014-7169
145
+
146
+ Patch135: bash-4.2-cve-2014-7169-0.patch
147
+ Patch136: bash-4.2-cve-2014-7169-1.patch
148
+ Patch137: bash-4.2-cve-2014-7169-2.patch
149
+
150
+ #1172214 - Bash leaks memory when doing a pattern-substitution
151
+ Patch138: bash-4.2-double-alloc.patch
152
+
153
+ #1196566 - IFS incorrectly splitting herestrings
154
+ Patch139: bash-4.2-ifs-in-temp-env.patch
155
+
156
+ #1165793
157
+ Patch140: bash-4.2-check-debugger.patch
158
+
159
+ #1212775
160
+ Patch141: bash-4.2-case-in-command-subst.patch
161
+
162
+ #1237213 - export when fnname contains hyphens
163
+ Patch142: bash-4.2-enable-hyphened-fn-export.patch
164
+
165
+ #1326302
166
+ Patch143: fix-shopt-lastpipe-mode-crash.patch
167
+
168
+ #1372806
169
+ Patch144: bash-4.3-trapped-signals.patch
170
+
171
+ #1403255
172
+ Patch145: bash-4.4-param-expansion.patch
173
+
174
+ #1377496
175
+ Patch146: bash-4.4-pipeline-pgrp.patch
176
+
177
+ #1267478
178
+ Patch147: bash-4.2-missing-opt-cd.patch
179
+
180
+ #1264101 - Plug a leak related to compound assignments
181
+ Patch148: bash-4.2-leak-compound.patch
182
+
183
+ #1379237
184
+ Patch149: bash-4.3-cve-2016-0634.patch
185
+
186
+ #1426026
187
+ Patch150: bash-4.3-cve-2016-7543.patch
188
+
189
+ #1429838
190
+ Patch151: bash-cve-2016-9401.patch
191
+
192
+ #1473245
193
+ Patch152: bash-4.3-pipefd-leak.patch
194
+
195
+ #1487615 - bash fails to execute commands containing multibyte characters
196
+ Patch153: bash-4.3-wshouldquote.patch
197
+
198
+ BuildRequires: texinfo bison
199
+ BuildRequires: ncurses-devel
200
+ BuildRequires: autoconf, gettext
201
+ Conflicts: filesystem < 3
202
+ Provides: /bin/sh
203
+ Provides: /bin/bash
204
+
205
+ %description
206
+ The GNU Bourne Again shell (Bash) is a shell or command language
207
+ interpreter that is compatible with the Bourne shell (sh). Bash
208
+ incorporates useful features from the Korn shell (ksh) and the C shell
209
+ (csh). Most sh scripts can be run by bash without modification.
210
+
211
+ %package doc
212
+ Summary: Documentation files for %{name}
213
+ Group: Development/Languages
214
+ Requires: %{name} = %{version}-%{release}
215
+
216
+ %description doc
217
+ This package contains documentation files for %{name}.
218
+
219
+ %define pkgdocdir %{_datadir}/doc/%{name}-%{version}
220
+
221
+ %prep
222
+ #%setup -q -a 2
223
+ %setup -q -n %{name}-%{baseversion}
224
+
225
+ # Official upstream patches
226
+ %patch001 -p0 -b .001
227
+ %patch002 -p0 -b .002
228
+ %patch003 -p0 -b .003
229
+ %patch004 -p0 -b .004
230
+ %patch005 -p0 -b .005
231
+ %patch006 -p0 -b .006
232
+ %patch007 -p0 -b .007
233
+ %patch008 -p0 -b .008
234
+ %patch009 -p0 -b .009
235
+ %patch010 -p0 -b .010
236
+ %patch011 -p0 -b .011
237
+ %patch012 -p0 -b .012
238
+ %patch013 -p0 -b .013
239
+ %patch014 -p0 -b .014
240
+ %patch015 -p0 -b .015
241
+ %patch016 -p0 -b .016
242
+ %patch017 -p0 -b .017
243
+ %patch018 -p0 -b .018
244
+ %patch019 -p0 -b .019
245
+ %patch020 -p0 -b .020
246
+ %patch021 -p0 -b .021
247
+ %patch022 -p0 -b .022
248
+ %patch023 -p0 -b .023
249
+ %patch024 -p0 -b .024
250
+ %patch025 -p0 -b .025
251
+ %patch026 -p0 -b .026
252
+ %patch027 -p0 -b .027
253
+ %patch028 -p0 -b .028
254
+ %patch029 -p0 -b .029
255
+ %patch030 -p0 -b .030
256
+ %patch031 -p0 -b .031
257
+ %patch032 -p0 -b .032
258
+ %patch033 -p0 -b .033
259
+ %patch034 -p0 -b .034
260
+ %patch035 -p0 -b .035
261
+ %patch036 -p0 -b .036
262
+ %patch037 -p0 -b .037
263
+ %patch038 -p0 -b .038
264
+ %patch039 -p0 -b .039
265
+ %patch040 -p0 -b .040
266
+ %patch041 -p0 -b .041
267
+ %patch042 -p0 -b .042
268
+ %patch043 -p0 -b .043
269
+ %patch044 -p0 -b .044
270
+ %patch045 -p0 -b .045
271
+ %patch046 -p0 -b .046
272
+
273
+ # Other patches
274
+ %patch101 -p1 -b .security
275
+ %patch102 -p1 -b .paths
276
+ %patch103 -p1 -b .profile
277
+ %patch104 -p1 -b .interpreter
278
+ %patch105 -p1 -b .debuginfo
279
+ %patch106 -p1 -b .manso
280
+ %patch107 -p1 -b .pgrp_sync
281
+ %patch108 -p1 -b .readline_oom
282
+ %patch109 -p1 -b .xcc
283
+ %patch110 -p1 -b .audit
284
+ %patch111 -p1 -b .ssh_source_bash
285
+ %patch112 -p1 -b .bashbug
286
+ %patch113 -p1 -b .infotags
287
+ %patch114 -p1 -b .requires
288
+ %patch115 -p1 -b .setlocale
289
+ %patch116 -p1 -b .tty_tests
290
+ %patch117 -p1 -b .nobits
291
+ %patch118 -p1 -b .examples
292
+ %patch119 -p1 -b .broken_pipe
293
+ %patch120 -p1 -b .logout
294
+ %patch121 -p1 -b .coverity
295
+ %patch122 -p1 -b .defer_sigchld_trap
296
+ %patch123 -p1
297
+ %patch124 -p1 -b .signal
298
+ %patch125 -p1 -b .size_type
299
+ %patch126 -p1 -b .missing_closes
300
+ %patch127 -p1 -b .trap
301
+ %patch128 -p1 -b .ulimit
302
+ %patch129 -p1 -b .expand
303
+ %patch130 -p1 -b .noecho
304
+ %patch131 -p1 -b .manpage
305
+ %patch132 -p1 -b .hang
306
+ %patch133 -p1 -b .man
307
+ %patch134 -p0 -b .inject
308
+ %patch135 -p0 -b .7169-0
309
+ %patch136 -p0 -b .7169-1
310
+ %patch137 -p0 -b .7169-2
311
+ %patch052 -p0 -b .052
312
+ %patch053 -p0 -b .053
313
+ %patch138 -p1 -b .double-alloc
314
+ %patch139 -p1 -b .temp-env
315
+ %patch140 -p1 -b .check-debugger
316
+ %patch141 -p1 -b .command-subst
317
+ %patch142 -p0 -b .export
318
+ %patch143 -p1 -b .fix-shopt-lastpipe-mode
319
+ %patch144 -p1 -b .trapped-signals
320
+ %patch145 -p1 -b .param-expansion
321
+ %patch146 -p1 -b .pipeline-pgrp
322
+ %patch147 -p1 -b .cd-e
323
+ %patch148 -p1 -b .leak-compound
324
+ %patch149 -p1 -b .cve-2016-0634
325
+ %patch150 -p1 -b .cve-2016-7543
326
+ %patch151 -p1 -b .cve-2016-9401
327
+ %patch152 -p1 -b .pipefd-leak
328
+ %patch153 -p1 -b .wshouldquote
329
+
330
+ echo %{version} > _distribution
331
+ echo %{release} > _patchlevel
332
+
333
+ %build
334
+ autoconf
335
+ %configure --with-bash-malloc=no --with-afs
336
+
337
+ # Recycles pids is neccessary. When bash's last fork's pid was X
338
+ # and new fork's pid is also X, bash has to wait for this same pid.
339
+ # Without Recycles pids bash will not wait.
340
+ make "CPPFLAGS=-D_GNU_SOURCE -DRECYCLES_PIDS -DDEFAULT_PATH_VALUE='\"/usr/local/bin:/usr/bin\"' `getconf LFS_CFLAGS`"
341
+
342
+ %install
343
+ rm -rf $RPM_BUILD_ROOT
344
+
345
+ if [ -e autoconf ]; then
346
+ # Yuck. We're using autoconf 2.1x.
347
+ export PATH=.:$PATH
348
+ fi
349
+
350
+ # Fix bug #83776
351
+ perl -pi -e 's,bashref\.info,bash.info,' doc/bashref.info
352
+
353
+ make DESTDIR=$RPM_BUILD_ROOT install
354
+
355
+ mkdir -p $RPM_BUILD_ROOT/etc
356
+
357
+ # make manpages for bash builtins as per suggestion in DOC/README
358
+ pushd doc
359
+ sed -e '
360
+ /^\.SH NAME/, /\\- bash built-in commands, see \\fBbash\\fR(1)$/{
361
+ /^\.SH NAME/d
362
+ s/^bash, //
363
+ s/\\- bash built-in commands, see \\fBbash\\fR(1)$//
364
+ s/,//g
365
+ b
366
+ }
367
+ d
368
+ ' builtins.1 > man.pages
369
+ for i in echo pwd test kill; do
370
+ perl -pi -e "s,$i,,g" man.pages
371
+ perl -pi -e "s, , ,g" man.pages
372
+ done
373
+
374
+ install -c -m 644 builtins.1 ${RPM_BUILD_ROOT}%{_mandir}/man1/builtins.1
375
+
376
+ for i in `cat man.pages` ; do
377
+ echo .so man1/builtins.1 > ${RPM_BUILD_ROOT}%{_mandir}/man1/$i.1
378
+ chmod 0644 ${RPM_BUILD_ROOT}%{_mandir}/man1/$i.1
379
+ done
380
+ popd
381
+
382
+ # Link bash man page to sh so that man sh works.
383
+ ln -s bash.1 ${RPM_BUILD_ROOT}%{_mandir}/man1/sh.1
384
+
385
+ # Not for printf, true and false (conflict with coreutils)
386
+ rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/printf.1
387
+ rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/true.1
388
+ rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/false.1
389
+
390
+ ln -sf bash $RPM_BUILD_ROOT%{_bindir}/sh
391
+ rm -f $RPM_BUILD_ROOT%{_infodir}/dir
392
+ mkdir -p $RPM_BUILD_ROOT/etc/skel
393
+ install -c -m644 %SOURCE1 $RPM_BUILD_ROOT/etc/skel/.bashrc
394
+ install -c -m644 %SOURCE2 $RPM_BUILD_ROOT/etc/skel/.bash_profile
395
+ install -c -m644 %SOURCE3 $RPM_BUILD_ROOT/etc/skel/.bash_logout
396
+ LONG_BIT=$(getconf LONG_BIT)
397
+ mv $RPM_BUILD_ROOT%{_bindir}/bashbug \
398
+ $RPM_BUILD_ROOT%{_bindir}/bashbug-"${LONG_BIT}"
399
+ ln -s bashbug-"${LONG_BIT}" $RPM_BUILD_ROOT%{_bindir}/bashbug
400
+ ln -s bashbug.1 $RPM_BUILD_ROOT/%{_mandir}/man1/bashbug-"$LONG_BIT".1
401
+
402
+ # Fix missing sh-bangs in example scripts (bug #225609).
403
+ for script in \
404
+ examples/scripts/krand.bash \
405
+ examples/scripts/bcsh.sh \
406
+ examples/scripts/precedence \
407
+ examples/scripts/shprompt
408
+ do
409
+ cp "$script" "$script"-orig
410
+ echo '#!/bin/bash' > "$script"
411
+ cat "$script"-orig >> "$script"
412
+ rm -f "$script"-orig
413
+ done
414
+
415
+ # bug #820192, need to add execable alternatives for regular built-ins
416
+ for ea in alias bg cd command fc fg getopts jobs read umask unalias wait
417
+ do
418
+ cat <<EOF > "$RPM_BUILD_ROOT"/%{_bindir}/"$ea"
419
+ #!/bin/sh
420
+ builtin $ea "\$@"
421
+ EOF
422
+ chmod +x "$RPM_BUILD_ROOT"/%{_bindir}/"$ea"
423
+ done
424
+
425
+ %find_lang %{name}
426
+
427
+ # copy doc to /usr/share/doc
428
+ cat /dev/null > %{name}-doc.files
429
+ mkdir -p $RPM_BUILD_ROOT/%{pkgdocdir}/doc
430
+ cp -p COPYING $RPM_BUILD_ROOT/%{pkgdocdir}
431
+ # loadables aren't buildable
432
+ rm -rf examples/loadables
433
+ for file in CHANGES COMPAT NEWS NOTES POSIX examples\
434
+ doc/{FAQ,INTRO,rose94.pdf,article.{pdf,txt},bashref.{html,pdf}}
435
+ do
436
+ cp -rp "$file" $RPM_BUILD_ROOT/%{pkgdocdir}/"$file"
437
+ echo "%%doc %{pkgdocdir}/$file" >> %{name}-doc.files
438
+ done
439
+ echo "%%doc %{pkgdocdir}/doc" >> %{name}-doc.files
440
+
441
+
442
+ %if %{with tests}
443
+ %check
444
+ make check
445
+ %endif
446
+
447
+ %clean
448
+ rm -rf $RPM_BUILD_ROOT
449
+
450
+ # ***** bash doesn't use install-info. It's always listed in %{_infodir}/dir
451
+ # to prevent prereq loops
452
+
453
+ # post is in lua so that we can run it without any external deps. Helps
454
+ # for bootstrapping a new install.
455
+ # Jesse Keating 2009-01-29 (code from Ignacio Vazquez-Abrams)
456
+ # Roman Rakus 2011-11-07 (code from Sergey Romanov) #740611
457
+ %post -p <lua>
458
+ nl = '\n'
459
+ sh = '/bin/sh'..nl
460
+ bash = '/bin/bash'..nl
461
+ f = io.open('/etc/shells', 'a+')
462
+ if f then
463
+ local shells = nl..f:read('*all')..nl
464
+ if not shells:find(nl..sh) then f:write(sh) end
465
+ if not shells:find(nl..bash) then f:write(bash) end
466
+ f:close()
467
+ end
468
+
469
+ %postun -p <lua>
470
+ -- Run it only if we are uninstalling
471
+ if arg[2] == "0"
472
+ then
473
+ t={}
474
+ for line in io.lines("/etc/shells")
475
+ do
476
+ if line ~= "/bin/bash" and line ~= "/bin/sh"
477
+ then
478
+ table.insert(t,line)
479
+ end
480
+ end
481
+
482
+ f = io.open("/etc/shells", "w+")
483
+ for n,line in pairs(t)
484
+ do
485
+ f:write(line.."\n")
486
+ end
487
+ f:close()
488
+ end
489
+
490
+ %files -f %{name}.lang
491
+ %defattr(-,root,root)
492
+ %config(noreplace) /etc/skel/.b*
493
+ %{_bindir}/sh
494
+ %{_bindir}/bash
495
+ %{_bindir}/alias
496
+ %{_bindir}/bg
497
+ %{_bindir}/cd
498
+ %{_bindir}/command
499
+ %{_bindir}/fc
500
+ %{_bindir}/fg
501
+ %{_bindir}/getopts
502
+ %{_bindir}/jobs
503
+ %{_bindir}/read
504
+ %{_bindir}/umask
505
+ %{_bindir}/unalias
506
+ %{_bindir}/wait
507
+ %dir %{pkgdocdir}/
508
+ %doc %{pkgdocdir}/COPYING
509
+ %attr(0755,root,root) %{_bindir}/bashbug*
510
+ %{_infodir}/bash.info*
511
+ %{_mandir}/*/*
512
+ %{_mandir}/*/..1*
513
+
514
+ %files doc -f %{name}-doc.files
515
+ %defattr(-, root, root)
516
+
517
+ # For now there isn't any doc
518
+ #%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
519
+
520
+ %changelog
521
+ * Mon Sep 25 2017 Siteshwar Vashisht <svashisht@redhat.com> - 4.2.46-30
522
+ - Check for multibyte characters in commands
523
+ Resolves: #1487615
524
+
525
+ * Thu Aug 03 2017 Siteshwar Vashisht <svashisht@redhat.com> - 4.2.46-29
526
+ - Fix a pipe fd leak in process substitution
527
+ Resolves: #1473245
528
+
529
+ * Tue Mar 07 2017 Kamil Dudka <kdudka@redhat.com - 4.2.46-28
530
+ - CVE-2016-9401 - Fix crash when '-' is passed as second sign to popd
531
+ Resolves: #1429838
532
+
533
+ * Fri Feb 24 2017 Kamil Dudka <kdudka@redhat.com - 4.2.46-27
534
+ - CVE-2016-7543: Fix for arbitrary code execution via SHELLOPTS+PS4 variables
535
+ Resolves: #1426026
536
+
537
+ * Thu Feb 09 2017 Siteshwar Vashisht <svashisht@redhat.com> - 4.2.46-26
538
+ - CVE-2016-0634: Fix for arbitrary code execution via malicious hostname
539
+ Resolves: #1379237
540
+
541
+ * Thu Feb 09 2017 Siteshwar Vashisht <svashisht@redhat.com> - 4.2.46-25
542
+ - Plug a leak related to compound assignments
543
+ Resolves: #1264101
544
+
545
+ * Thu Feb 09 2017 Siteshwar Vashisht <svashisht@redhat.com> - 4.2.46-24
546
+ - Recognize cd -e
547
+ Resolves: #1267478
548
+
549
+ * Thu Feb 09 2017 Siteshwar Vashisht <svashisht@redhat.com> - 4.2.46-23
550
+ - Add a condition before setting pipeline_pgrp to shell_pgrp
551
+ Resolves: #1377496
552
+
553
+ * Thu Feb 09 2017 Siteshwar Vashisht <svashisht@redhat.com> - 4.2.46-22
554
+ - Avoid crash in parameter expansion while expanding long strings
555
+ Resolves: #1403255
556
+
557
+ * Wed Oct 12 2016 Siteshwar Vashisht <svashisht@redhat.com> - 4.2.46-21
558
+ - Fix a crash in trap signal handling
559
+ Resolves: #1372806
560
+
561
+ * Tue Jul 12 2016 Siteshwar Vashisht <svashisht@redhat.com> - 4.2.46-20
562
+ - Fix a crash when lastpipe mode is enabled
563
+ Resolves: #1326302
564
+
565
+ * Wed Jul 08 2015 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-19
566
+ - Add a necessary declaration to common.h
567
+ Related: #1165793
568
+
569
+ * Tue Jul 07 2015 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-18
570
+ - Allow importing exported functions with hyphens
571
+ Resolves: #1237213
572
+
573
+ * Mon May 18 2015 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-17
574
+ - Make sure a case statement works in command subst
575
+ Resolves: #1212775
576
+
577
+ * Fri May 15 2015 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-16
578
+ - Emit warning when --debugger option is used and no debugger is installed
579
+ Resolves: #1165793
580
+
581
+ * Thu May 14 2015 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-15
582
+ - Add a CI configfile
583
+ Related: #1165793
584
+
585
+ * Mon Apr 27 2015 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-14
586
+ - IFS incorrectly splitting herestrings
587
+ Resolves: #1196566
588
+
589
+ * Mon Apr 27 2015 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-13
590
+ - PatternSub code allocates twice
591
+ Resolves: #1172214
592
+
593
+ * Sun Jan 11 2015 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-12
594
+ - Shellshock related parser bugs - patches
595
+ Related: #1175647
596
+
597
+ * Thu Jan 08 2015 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-11
598
+ - Shellshock related parser bugs (actually upstream patches 52 and 53)
599
+ Resolves: #1175647
600
+
601
+ * Fri Sep 26 2014 Michal Hlavinka <mhlavink@redhat.com> - 4.2.46-10
602
+ - CVE-2014-7169
603
+ Resolves: #1146325
604
+ - amend #1146324 patch to match upstream's
605
+
606
+ * Mon Sep 15 2014 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-9
607
+ - fix-up the patch
608
+ Related: #1141648
609
+
610
+ * Mon Sep 15 2014 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-8
611
+ - check for fishy environment
612
+ Resolves: #1141648
613
+
614
+ * Mon Aug 04 2014 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-7
615
+ - Properly document extglob behaviour
616
+ Resolves: #1126401
617
+
618
+ * Mon Aug 04 2014 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-6
619
+ - Prevent bash from hanging with certain history settings
620
+ Resolves: #1126396
621
+
622
+ * Mon Aug 04 2014 Ondrej Oprala <ooprala@redhat.com> - 4.2.46-5
623
+ - Document continue, break and suspend
624
+ Resolves: #1126370
625
+
626
+ * Wed Jul 24 2014 Ondrej Oprala <ooprala@redhat.com - 4.2.46-4
627
+ - Fix bash visual mode
628
+ Resolves: #1102813
629
+
630
+ * Tue Jul 22 2014 Ondrej Oprala <ooprala@redhat.com - 4.2.46-3
631
+ - Inhibit brace expansion in some cases
632
+ Resolves: #1116301
633
+
634
+ * Mon Jul 21 2014 Ondrej Oprala <ooprala@redhat.com - 4.2.46-2
635
+ - Mention ulimit -c and -f block size in POSIX mode
636
+ Resolves: #1112709
637
+
638
+ * Thu Jun 18 2014 Ondrej Oprala <ooprala@redhat.com - 4.2.46-1
639
+ - Patchlevel 46
640
+ Resolves: #1073683
641
+
642
+ * Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 4.2.45-5
643
+ - Mass rebuild 2014-01-24
644
+
645
+ * Fri Jan 24 2014 Ondrej Oprala <ooprala@redhat.com - 4.2.45-4
646
+ - Backport a patch from #964687 (resolves #1034915)
647
+
648
+ * Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 4.2.45-3
649
+ - Mass rebuild 2013-12-27
650
+
651
+ * Fri Aug 09 2013 Roman Rakus <rrakus@redhat.com> - 4.2.45-2
652
+ - Added suggestion to .bashrc how to disable autopaging in systemctl
653
+ Resolves: #978841
654
+
655
+ * Mon Mar 11 2013 Roman Rakus <rrakus@redhat.com> - 4.2.45-1
656
+ - Patchlevel 45
657
+
658
+ * Thu Jan 31 2013 Roman Rakus <rrakus@redhat.com> - 4.2.42-3
659
+ - Fix usage of partial unitialized structure
660
+ Resolves: #857948
661
+
662
+ * Thu Jan 31 2013 Roman Rakus <rrakus@redhat.com> - 4.2.42-2
663
+ - Fix fd leaks
664
+ Resolves: #903833
665
+
666
+ * Thu Jan 03 2013 Roman Rakus <rrakus@redhat.com> - 4.2.42-1
667
+ - Patchlevel 42
668
+
669
+ * Thu Nov 29 2012 Roman Rakus <rrakus@redhat.com> - 4.2.39-3
670
+ - Use unsigned type for size
671
+
672
+ * Tue Nov 27 2012 Roman Rakus <rrakus@redhat.com> - 4.2.39-2
673
+ - Create bashbug symlink
674
+
675
+ * Fri Nov 02 2012 Roman Rakus <rrakus@redhat.com> - 4.2.39-1
676
+ - Patchlevel 39
677
+
678
+ * Tue Aug 28 2012 Roman Rakus <rrakus@redhat.com> - 4.2.37-8
679
+ - Fix a comments in rpm changelog
680
+
681
+ * Tue Aug 28 2012 Roman Rakus <rrakus@redhat.com> - 4.2.37-7
682
+ - Update info about trap in man page
683
+ Resolves: #799958
684
+ - instead of setting the signal handler to SIG_IGN while installing
685
+ the new trap handler, block the signal and unblock it after the new handler
686
+ is installed
687
+ Resolves: #695656
688
+
689
+ * Wed Aug 22 2012 Ondrej Oprala <ooprala@redhat.com> - 4.2.37-6
690
+ - Revert revision 4.2.37-5 - already fixed upstream
691
+
692
+ * Tue Aug 21 2012 Ondrej Oprala <ooprala@redhat.com> - 4.2.37-5
693
+ - Don't filter out environmental variables with
694
+ a dot in the name
695
+ Resolves: #819995
696
+
697
+ * Wed Aug 08 2012 Roman Rakus <rrakus@redhat.com> - 4.2.37-4
698
+ - Added doc subdir to bash-doc ownership list
699
+ Resolves: #846734
700
+
701
+ * Tue Jul 24 2012 Roman Rakus <rrakus@redhat.com> - 4.2.37-3
702
+ - Increment patchlevel tag
703
+
704
+ * Tue Jul 24 2012 Roman Rakus <rrakus@redhat.com> - 4.2.36-3
705
+ - Patchlevel 37
706
+
707
+ * Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.36-2
708
+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
709
+
710
+ * Tue Jul 10 2012 Roman Rakus <rrakus@redhat.com> - 4.2.36-1
711
+ - Patchlevel 36
712
+
713
+ * Sat Jun 23 2012 Roman Rakus <rrakus@redhat.com> - 4.2.29-3
714
+ - Remove /bin from DEFAULT_PATH_VALUE
715
+ Resolves: #834571
716
+
717
+ * Thu May 31 2012 Roman Rakus <rrakus@redhat.com> - 4.2.29-2
718
+ - Patchlevel 29
719
+ - Also keep release at -2, so we are newer then f16 and f17
720
+
721
+ * Tue May 29 2012 Roman Rakus <rrakus@redhat.com> - 4.2.28-2
722
+ - Provide exec-able alternatives to some builtins
723
+ Resolves #820192
724
+
725
+ * Wed May 09 2012 Roman Rakus <rrakus@redhat.com> - 4.2.28-1
726
+ - Patchlevel 28
727
+
728
+ * Mon Apr 23 2012 Roman Rakus <rrakus@redhat.com> - 4.2.24-2
729
+ - Don't call malloc in signal handler
730
+
731
+ * Tue Mar 13 2012 Roman Rakus <rrakus@redhat.com> - 4.2.24-1
732
+ - Patchlevel 24
733
+
734
+ * Wed Jan 25 2012 Harald Hoyer <harald@redhat.com> 4.2.20-4
735
+ - install everything in /usr
736
+ https://fedoraproject.org/wiki/Features/UsrMove
737
+
738
+ * Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.20-3
739
+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
740
+
741
+ * Thu Nov 24 2011 Roman Rakus <rrakus@redhat.com> - 4.2.20-2
742
+ - Add missing f:close() in postun
743
+ - Patchlevel 20
744
+
745
+ * Thu Nov 10 2011 Roman Rakus <rrakus@redhat.com> - 4.2.10-7
746
+ - erase /bin/bash and /bin/sh in postun only if we are uninstalling (#752827)
747
+
748
+ * Mon Nov 07 2011 Roman Rakus <rrakus@redhat.com> - 4.2.10-6
749
+ - Simplified lua post script (#740611)
750
+
751
+ * Fri Jul 29 2011 Roman Rakus <rrakus@redhat.com> - 4.2.10-5
752
+ - Clean up unneeded bash-doc files (Ville Skyttä) (#721116)
753
+
754
+ * Wed Jun 22 2011 Roman Rakus <rrakus@redhat.com> - 4.2.10-4
755
+ - Don't crash when use `read' with associative array (#715050)
756
+
757
+ * Tue Jun 07 2011 Roman Rakus <rrakus@redhat.com> - 4.2.10-3
758
+ - Added $HOME/.local/bin to PATH in .bash_profile (#699812)
759
+
760
+ * Thu May 05 2011 Roman Rakus <rrakus@redhat.com> - 4.2.10-2
761
+ - Inc. a release no.
762
+
763
+ * Thu May 05 2011 Roman Rakus <rrakus@redhat.com> - 4.2.10-1
764
+ - Patchlevel 10
765
+
766
+ * Thu Mar 31 2011 Roman Rakus <rrakus@redhat.com> - 4.2.8-2
767
+ - Remove bash-4.2-xdupmbstowcs2-patch, which introduced another bugs
768
+
769
+ * Tue Mar 15 2011 Roman Rakus <rrakus@redhat.com> - 4.2.8-1
770
+ - Patchlevel 8
771
+
772
+ * Tue Mar 15 2011 Roman Rakus <rrakus@redhat.com> - 4.2.7-3
773
+ - #684293, fix the infinite loop with invalid wide char
774
+
775
+ * Mon Mar 14 2011 Roman Rakus <rrakus@redhat.com> - 4.2.7-2
776
+ - Use lua script in postun
777
+
778
+ * Mon Mar 07 2011 Roman Rakus <rrakus@redhat.com> - 4.2.7-1
779
+ - Patchlevel 7
780
+
781
+ * Wed Mar 02 2011 Roman Rakus <rrakus@redhat.com> - 4.2.6-1
782
+ - Patchlevel 6
783
+
784
+ * Tue Mar 01 2011 Roman Rakus <rrakus@redhat.com> - 4.2.5-1
785
+ - Patchlevel 5
786
+ - Static analyzis show some issues in some patches
787
+ - Some cleanup
788
+
789
+ * Wed Feb 16 2011 Roman Rakus <rrakus@redhat.com> - 4.2.0-2
790
+ - pattern matching glitch, patch from upstream
791
+
792
+ * Wed Feb 16 2011 Roman Rakus <rrakus@redhat.com> - 4.2.0-1
793
+ - Release bash-4.2
794
+
795
+ * Mon Feb 14 2011 Roman Rakus <rrakus@redhat.com> - 4.2.0-0.2.rc2
796
+ - Enable system-wide .bash_logout for login shells
797
+
798
+ * Wed Feb 09 2011 Roman Rakus <rrakus@redhat.com> - 4.2.0-0.1.rc2
799
+ - Update to bash-4.2-rc2
800
+
801
+ * Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1.9-6
802
+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
803
+
804
+ * Thu Jan 06 2011 Roman Rakus <rrakus@redhat.com> - 4.1.9-5
805
+ - Builtins like echo and printf won't report errors
806
+ when output does not succeed due to EPIPE
807
+
808
+ * Thu Dec 16 2010 Roman Rakus <rrakus@redhat.com> - 4.1.9-4
809
+ - Drop doc/examples/loadables
810
+
811
+ * Wed Dec 01 2010 Roman Rakus <rrakus@redhat.com> - 4.1.9-3
812
+ - don't segfault when trying to bind int variable to array
813
+ with bad array subsrcipt
814
+ Resolves: #618289
815
+
816
+ * Fri Oct 15 2010 Ville Skyttä <ville.skytta@iki.fi> - 4.1.9-2
817
+ - Move doc dir ownership to main package.
818
+ - Preserve doc timestamps.
819
+ - Add --without tests option for building without running the test suite.
820
+
821
+ * Thu Oct 14 2010 Roman Rakus <rrakus@redhat.com> - 4.1.9-1
822
+ - Patch level 9
823
+
824
+ * Mon Aug 02 2010 Roman Rakus <rrakus@redhat.com> - 4.1.7-4
825
+ - Use better nomenclature for --rpm-requires bash option (#557134)
826
+
827
+ * Tue Jun 22 2010 Roman Rakus <rrakus@redhat.com> - 4.1.7-3
828
+ - Added missing patch
829
+
830
+ * Tue Jun 22 2010 Roman Rakus <rrakus@redhat.com> - 4.1.7-2
831
+ - Do the same CFLAGS in generated Makefile in examples
832
+
833
+ * Fri May 21 2010 Roman Rakus <rrakus@redhat.com> - 4.1.7-1
834
+ - Patch level 7
835
+
836
+ * Mon Apr 12 2010 Roman Rakus <rrakus@redhat.com> - 4.1.5-1
837
+ - Patch level 5
838
+ - There's no more need for Requires(post) ncurses-libs
839
+
840
+ * Tue Mar 30 2010 Roman Rakus <rrakus@redhat.com> - 4.1.2-4
841
+ - Corrected requires patch (#563301)
842
+
843
+ * Fri Jan 22 2010 rrakus@redhat.com 4.1.2-3
844
+ - Don't use cond-rmatch patch
845
+ - Use manso patch
846
+ - Include COPYING in base bash rpm
847
+
848
+ * Fri Jan 22 2010 rrakus@redhat.com 4.1.2-2
849
+ - Correct patchlevel 2
850
+
851
+ * Fri Jan 22 2010 Roman Rakus rrakus@redhat.com 4.1.2-1
852
+ - Patchlevel 4.2
853
+ - Removed old patch
854
+ - Returned back manso patch
855
+
856
+ * Fri Jan 08 2010 Roman Rakus rrakus@redhat.com 4.1.0-2
857
+ - Include COPYING in doc dir
858
+
859
+ * Mon Jan 04 2010 Roman Rakus <rrakus@redhat.com> - 4.1.0-1
860
+ - Upstream 4.1
861
+
862
+ * Sun Dec 27 2009 Roman Rakus <rrakus@redhat.com> - 4.1-0.2.rc1
863
+ - Fixed patch for fuzz=0
864
+
865
+ * Sun Dec 27 2009 Roman Rakus <rrakus@redhat.com> - 4.1-0.1.rc1
866
+ - Upstream 4.1.rc1
867
+
868
+ * Fri Dec 11 2009 Roman Rakus <rrakus@redhat.com> - 4.0.35-2
869
+ - Don't segfault when TERM=eterm* and EMACS is unset (#530911)
870
+
871
+ * Thu Oct 29 2009 Roman Rakus <rrakus@redhat.com> - 4.0.35-1
872
+ - Patch level 35
873
+
874
+ * Mon Oct 05 2009 Roman Rakus <rrakus@redhat.com> - 4.0.33-2
875
+ - Make symlink from bashbug-suffix to bashbug man pages
876
+
877
+ * Wed Sep 16 2009 Roman Rakus <rrakus@redhat.com> - 4.0.33-1
878
+ - Patch level 33
879
+ - spec file cleanup
880
+
881
+ * Fri Sep 04 2009 Roman Rakus <rrakus@redhat.com> - 4.0.28-3
882
+ - check if interp section is NOBITS
883
+ - define Recycles pids
884
+
885
+ * Wed Aug 26 2009 Roman Rakus <rrakus@redhat.com> - 4.0.28-2
886
+ - alloc memory for key in creation associative array (#518644)
887
+
888
+ * Tue Jul 28 2009 Roman Rakus <rrakus@redhat.com> - 4.0.28-1
889
+ - Upstream patch level 28
890
+
891
+ * Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0.24-2
892
+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
893
+
894
+ * Tue May 19 2009 Roman Rakus <rrakus@redhat.com> - 4.0.24-1
895
+ - Upstream patch level 24
896
+
897
+ * Wed Apr 22 2009 Roman Rakus <rrakus@redhat.com> - 4.0.16-1
898
+ - better to use patch level in version tag like vim do
899
+
900
+ * Tue Apr 21 2009 Roman Rakus <rrakus@redhat.com> - 4.0-7.16
901
+ - Use patch level in Release tag
902
+
903
+ * Wed Apr 08 2009 Roman Rakus <rrakus@redhat.com> - 4.0-6
904
+ - Official upstream patch level 16
905
+
906
+ * Mon Mar 30 2009 Roman Rakus <rrakus@redhat.com> - 4.0-5
907
+ - Split documentation, use bash-doc package
908
+ Resolves: #492447
909
+
910
+ * Sat Mar 21 2009 Lubomir Rintel <lkundrak@v3.sk> - 4.0-4
911
+ - Add full URLs to upstream patches
912
+ - Don't uselessly use %%version macro
913
+
914
+ * Wed Mar 11 2009 Roman Rakus <rrakus@redhat.com> - 4.0-3
915
+ - Official upstream patch level 10
916
+
917
+ * Wed Feb 25 2009 Roman Rakus <rrakus@redhat.com> - 4.0-2
918
+ - Save parser state in pcomplete.
919
+ Resolves: #487257
920
+
921
+ * Tue Feb 24 2009 Roman Rakus <rrakus@redhat.com> - 4.0-1
922
+ - Release of bash-4.0
923
+
924
+ * Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-0.5.rc1
925
+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
926
+
927
+ * Wed Feb 11 2009 Roman Rakus <rrakus@redhat.com> - 4.0-0.4.rc1
928
+ - Fix handling pipelines with `set -e'
929
+ Resolves: #483385
930
+
931
+ * Thu Jan 29 2009 Roman Rakus <rrakus@redhat.com> - 4.0-0.3.rc1
932
+ - No more debug output
933
+ Resolves: #483002
934
+
935
+ * Wed Jan 28 2009 Jesse Keating <jkeating@redhat.com> - 4.0-0.2.rc1
936
+ - Replace post code with lua to be able to not have external deps
937
+
938
+ * Mon Jan 26 2009 Roman Rakus <rrakus@redhat.com> - 4.0-0.1.rc1
939
+ - Fixed release tag
940
+
941
+ * Wed Jan 21 2009 Roman Rakus <rrakus@redhat.com> - 4.0-rc1.1
942
+ - Bump to upstream bash-4.0-rc1
943
+
944
+ * Mon Dec 15 2008 Roman Rakus <rrakus@redhat.com> - 3.2-33
945
+ - fc builtin fix
946
+ Resolves: #438841
947
+
948
+ * Mon Dec 15 2008 Roman Rakus <rrakus@redhat.com> - 3.2-32
949
+ - Enabling auditing
950
+ Resolves: #476216
951
+
952
+ * Tue Dec 09 2008 Roman Rakus <rrakus@redhat.com> - 3.2-31
953
+ - Patchlevel 48
954
+
955
+ * Thu Dec 04 2008 Roman Rakus <rrakus@redhat.com> - 3.2-30
956
+ - Added check for `command_not_found_handler' shell function
957
+ Resolves: #432579
958
+
959
+ * Tue Oct 28 2008 Jesse Keating <jkeating@redhat.com> - 3.2-29
960
+ - Add the Requires(post) back for ncurses-libs, so that rpm knows
961
+ where to break the loop. The post actually does require the curses
962
+ libs for the sh calls. Could consider doing this in LUA and not have
963
+ any external deps.
964
+
965
+ * Thu Oct 23 2008 Roman Rakus <rrakus@redhat.com> - 3.2-28
966
+ - Removing Requires for mktemp and ncurses, which cause
967
+ dependencing loop
968
+ - Enabling #define SSH_SOURCE_BASHRC, because ssh changed.
969
+ Resolves: #458839
970
+ - Catch signals right after calling execve()
971
+ Resolves: #455548
972
+
973
+ * Thu Jul 17 2008 Roman Rakus <rrakus@redhat.com> - 3.2-27
974
+ - Changes in man page - #442018, #445692, #446625, #453409
975
+ - Changed patches to satisfy fuzz=0
976
+
977
+ * Thu Jun 5 2008 Roman Rakus <rrakus@redhat.com> - 3.2-26
978
+ - Patchlevel 39
979
+
980
+ * Tue Jun 3 2008 Roman Rakus <rrakus@redhat.com> - 3.2-25
981
+ - #449512 - reverting back last change - don't use glob library
982
+
983
+ * Wed May 28 2008 Roman Rakus <rrakus@redhat.com> - 3.2-24
984
+ - #217359 - use posix glob library
985
+
986
+ * Thu May 22 2008 Roman Rakus <rrakus@redhat.com> - 3.2-23
987
+ - #446420 - COMP_WORDBREAKS settings now works
988
+
989
+ * Fri Feb 29 2008 Tomas Janousek <tjanouse@redhat.com> - 3.2-22
990
+ - drop /usr/bin/clear from /etc/skel/.bash_logout as suggested by #429406
991
+
992
+ * Wed Feb 20 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 3.2-21
993
+ - Autorebuild for GCC 4.3
994
+
995
+ * Mon Jan 14 2008 Tomas Janousek <tjanouse@redhat.com> - 3.2-20
996
+ - Added bash32-026 upstream official patch
997
+ - Added bash32-027 upstream official patch (#249987)
998
+ - Added bash32-028 upstream official patch
999
+ - Added bash32-029 upstream official patch (#286861)
1000
+ - Added bash32-030 upstream official patch
1001
+ - Added bash32-031 upstream official patch (#358231)
1002
+ - Added bash32-032 upstream official patch
1003
+ - Added bash32-033 upstream official patch
1004
+ - Fix insert command repeating in vi mode (#190350)
1005
+
1006
+ * Tue Nov 06 2007 Tomas Janousek <tjanouse@redhat.com> - 3.2-19
1007
+ - fix cursor position when prompt has one invisible character (#358231)
1008
+ - dropped examples/loadables/ from docs, since it wasn't possible to build them
1009
+ anyway (#174380)
1010
+ - fix #286861: Wrong input confuses bash's arithmetic unit permanently
1011
+ - fix #344411: $RANDOM stays the same when job executed in the background
1012
+
1013
+ * Fri Aug 31 2007 Pete Graner <pgraner@redhat.com> - 3.2-18
1014
+ - Added bash32-021 upstream official patch
1015
+ - Added bash32-025 upstream official patch
1016
+ - Added bash32-024 upstream official patch
1017
+ - Added bash32-023 upstream official patch
1018
+ - Added bash32-022 upstream official patch
1019
+
1020
+ * Wed Aug 29 2007 Pete Graner <pgraner@redhat.com> - 3.2-17
1021
+ - Added bash32-018 upstream official patch
1022
+ - Added bash32-020 upstream official patch
1023
+ - Added bash32-019 upstream official patch
1024
+
1025
+ * Thu Aug 23 2007 Pete Graner <pgraner@redhat.com> - 3.2-16
1026
+ - Rebuild
1027
+
1028
+ * Mon Aug 20 2007 Pete Graner <pgraner@redhat.com> - 3.2-15
1029
+ - Update to the Improve bash $RANDOM pseudo RNG (bug #234906)
1030
+ now works with subshells and make $RANDOM on demand thus reducing the
1031
+ amount of AVCs thrown.
1032
+
1033
+ * Thu Aug 16 2007 Pete Graner <pgraner@redhat.com> - 3.2-15
1034
+ - Changed spec file License to GPLv2+
1035
+
1036
+ * Wed Aug 15 2007 Pete Graner <pgraner@redhat.com> - 3.2-13
1037
+ - Improve bash $RANDOM pseudo RNG (bug #234906)
1038
+
1039
+ * Fri Jul 20 2007 Tim Waugh <twaugh@redhat.com> 3.2-12
1040
+ - Quote environment variables in the post scriptlet to prevent upgrade
1041
+ failures (bug #249005).
1042
+
1043
+ * Thu Jul 5 2007 Tim Waugh <twaugh@redhat.com> 3.2-11
1044
+ - Patchlevel 17 (bug #241647).
1045
+
1046
+ * Wed Jul 4 2007 Tim Waugh <twaugh@redhat.com> 3.2-10
1047
+ - Clarification in the ulimit man page (bug #220657).
1048
+
1049
+ * Mon Feb 12 2007 Tim Waugh <twaugh@redhat.com> 3.2-9
1050
+ - Rebuild to link with libtinfo instead of libncurses.
1051
+
1052
+ * Wed Feb 7 2007 Tim Waugh <twaugh@redhat.com> 3.2-8
1053
+ - Avoid %%makeinstall (bug #225609).
1054
+
1055
+ * Tue Feb 6 2007 Tim Waugh <twaugh@redhat.com> 3.2-7
1056
+ - Reinstated this change:
1057
+ - Post requires ncurses (bug #224567).
1058
+ - Reverted this change:
1059
+ - Added triggers for install-info (bug #225609).
1060
+
1061
+ * Tue Feb 6 2007 Tim Waugh <twaugh@redhat.com> 3.2-6
1062
+ - Reverted this change:
1063
+ - Post requires ncurses (bug #224567).
1064
+
1065
+ * Mon Feb 5 2007 Tim Waugh <twaugh@redhat.com> 3.2-5
1066
+ - Added triggers for install-info (bug #225609).
1067
+ - Use full path to utilities in scriptlets (bug #225609).
1068
+ - Fix missing sh-bangs in example scripts (bug #225609).
1069
+ - Post requires ncurses (bug #224567).
1070
+ - Removed Prefix tag (bug #225609).
1071
+ - Fixed BuildRoot tag (bug #225609).
1072
+ - Removed trailing full-stop from summary (bug #225609).
1073
+ - Spec file is now UTF-8 (bug #225609).
1074
+ - Removed obsolete Obsoletes (bug #225609).
1075
+ - Moved 'make check' to new 'check' section (bug #225609).
1076
+ - Removed uses of RPM_SOURCE_DIR (bug #225609).
1077
+ - Fixed macros in changelog (bug #225609).
1078
+ - Changed tabs to spaces (bug #225609).
1079
+
1080
+ * Tue Jan 23 2007 Tim Waugh <twaugh@redhat.com> 3.2-4
1081
+ - Slightly better .bash_logout (bug #223960).
1082
+
1083
+ * Fri Jan 19 2007 Tim Waugh <twaugh@redhat.com> 3.2-3
1084
+ - Back out rmatch change introduced in 3.2 (bug #220087).
1085
+
1086
+ * Tue Jan 16 2007 Miroslav Lichvar <mlichvar@redhat.com> 3.2-2
1087
+ - Link with ncurses.
1088
+
1089
+ * Fri Dec 15 2006 Tim Waugh <twaugh@redhat.com> 3.2-1
1090
+ - Build requires autoconf and gettext.
1091
+ - 3.2. No longer need aq, login, ulimit, sighandler or read-memleak
1092
+ patches.
1093
+
1094
+ * Wed Jul 12 2006 Tim Waugh <twaugh@redhat.com> 3.1-17
1095
+ - Fixed 'tags out of date' problem with 'info bash' (bug #150118).
1096
+
1097
+ * Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 3.1-16.1
1098
+ - rebuild
1099
+
1100
+ * Wed Jun 28 2006 Tim Waugh <twaugh@redhat.com> 3.1-16
1101
+ - Removed 'unset USERNAME' from default .bash_profile (bug #196735).
1102
+
1103
+ * Thu Jun 15 2006 Tim Waugh <twaugh@redhat.com> 3.1-15
1104
+ - Updated requires patch to the ALT version.
1105
+
1106
+ * Wed May 31 2006 Tim Waugh <twaugh@redhat.com> 3.1-14
1107
+ - More sighandler fixes, this time hypothetical.
1108
+
1109
+ * Thu May 26 2006 Tim Waugh <twaugh@redhat.com> 3.1-13
1110
+ - Another fix for the sighandler patch (bug #192297).
1111
+
1112
+ * Thu Apr 13 2006 Tim Waugh <twaugh@redhat.com> 3.1-12
1113
+ - Patchlevel 17.
1114
+
1115
+ * Tue Apr 4 2006 Tim Waugh <twaugh@redhat.com> 3.1-11
1116
+ - Patchlevel 16.
1117
+
1118
+ * Thu Mar 23 2006 Tim Waugh <twaugh@redhat.com> 3.1-10
1119
+ - Patchlevel 14.
1120
+
1121
+ * Thu Mar 2 2006 Tim Waugh <twaugh@redhat.com> 3.1-9
1122
+ - Fixed duplicate documentation of ulimit '-x' option introduced by
1123
+ ulimit patch (bug #183596).
1124
+
1125
+ * Tue Feb 21 2006 Tim Waugh <twaugh@redhat.com> 3.1-8
1126
+ - Patchlevel 10.
1127
+
1128
+ * Thu Feb 16 2006 Tim Waugh <twaugh@redhat.com> 3.1-7
1129
+ - Patchlevel 8.
1130
+
1131
+ * Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 3.1-6.2
1132
+ - bump again for double-long bug on ppc(64)
1133
+
1134
+ * Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 3.1-6.1
1135
+ - rebuilt for new gcc4.1 snapshot and glibc changes
1136
+
1137
+ * Sun Feb 5 2006 Tim Waugh <twaugh@redhat.com> 3.1-6
1138
+ - Patchlevel 7.
1139
+
1140
+ * Wed Jan 18 2006 Tim Waugh <twaugh@redhat.com>
1141
+ - Removed inaccuracies from %%description (bug #178189).
1142
+
1143
+ * Fri Jan 13 2006 Tim Waugh <twaugh@redhat.com> 3.1-5
1144
+ - Fix 'exec -l /bin/bash'.
1145
+
1146
+ * Thu Jan 12 2006 Tim Waugh <twaugh@redhat.com> 3.1-4
1147
+ - Fix sighandler patch bug (bug #177545).
1148
+
1149
+ * Tue Jan 10 2006 Tim Waugh <twaugh@redhat.com> 3.1-3
1150
+ - Patchlevel 5.
1151
+
1152
+ * Fri Jan 6 2006 Tim Waugh <twaugh@redhat.com> 3.1-2
1153
+ - No longer need loadables, mbinc or shellfunc patches.
1154
+ - Use literal single-quote in bash man page where appropriate (bug #177051).
1155
+
1156
+ * Mon Jan 2 2006 Tim Waugh <twaugh@redhat.com> 3.1-1
1157
+ - 3.1.
1158
+ - No longer need ia64, utf8, multibyteifs, jobs, sigpipe,
1159
+ read-e-segfault, manpage, crash, pwd, afs, subshell patches.
1160
+ - Remove wrap patch for now.
1161
+ - Use upstream patch to fix arrays.
1162
+
1163
+ * Thu Dec 15 2005 Tim Waugh <twaugh@redhat.com> 3.0-41
1164
+ - Missed another loop for improved sighandler patch (bug #169231).
1165
+
1166
+ * Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
1167
+ - rebuilt
1168
+
1169
+ * Thu Dec 8 2005 Tim Waugh <twaugh@redhat.com> 3.0-40
1170
+ - Fix read memleak when reading from non-blocking fd (bug #173283).
1171
+ - Missed another loop for improved sighandler patch (bug #169231).
1172
+
1173
+ * Wed Dec 7 2005 Tim Waugh <twaugh@redhat.com> 3.0-39
1174
+ - Missed a loop for improved sighandler patch (bug #169231).
1175
+
1176
+ * Tue Dec 6 2005 Tim Waugh <twaugh@redhat.com> 3.0-38
1177
+ - Test out improved sighandler patch (bug #169231).
1178
+
1179
+ * Tue Nov 22 2005 Tim Waugh <twaugh@redhat.com> 3.0-37
1180
+ - Applied patch from upstream to fix parsing problem (bug #146638).
1181
+
1182
+ * Wed Nov 9 2005 Tim Waugh <twaugh@redhat.com> 3.0-36
1183
+ - Added Url: tag (bug #172770).
1184
+ - Do not explicitly gzip info pages (bug #172770).
1185
+ - Fix permissions on bashbug (bug #172770).
1186
+
1187
+ * Thu Oct 6 2005 Tim Waugh <twaugh@redhat.com> 3.0-35
1188
+ - Fixed memory allocation bug in multibyteifs patch (bug #169996).
1189
+
1190
+ * Fri Sep 23 2005 Tim Waugh <twaugh@redhat.com>
1191
+ - Use 'volatile' in sighandler patch.
1192
+
1193
+ * Wed Sep 21 2005 Tim Waugh <twaugh@redhat.com> 3.0-34
1194
+ - Avoid writing history files during signal handling (bug #163235).
1195
+
1196
+ * Mon Aug 8 2005 Tim Waugh <twaugh@redhat.com> 3.0-33
1197
+ - Fixed multibyte IFS handling for invalid input (bug #165243).
1198
+
1199
+ * Mon Aug 8 2005 Tim Waugh <twaugh@redhat.com> 3.0-32
1200
+ - Fixed 'LC_ALL=C export LC_ALL' behaviour (bug #165249).
1201
+
1202
+ * Thu Jun 23 2005 Tim Waugh <twaugh@redhat.com>
1203
+ - Added ulimit support for RLIMIT_NICE and RLIMIT_RTPRIO (bug #157049).
1204
+
1205
+ * Wed Jun 8 2005 Tim Waugh <twaugh@redhat.com>
1206
+ - Move a comment in dot-bashrc (bug #159522).
1207
+
1208
+ * Tue May 10 2005 Tim Waugh <twaugh@redhat.com> 3.0-31
1209
+ - Small fix for multibyteifs patch to prevent segfault (bug #157260).
1210
+
1211
+ * Wed Apr 20 2005 Tim Waugh <twaugh@redhat.com>
1212
+ - Fixed AFS support for output redirection, so that the correct errors
1213
+ are reported for other filesystems (bug #155373).
1214
+
1215
+ * Tue Mar 15 2005 Tim Waugh <twaugh@redhat.com> 3.0-30
1216
+ - Fix PS1 expansion crash when PWD is unset (bg #151116).
1217
+
1218
+ * Wed Mar 2 2005 Tim Waugh <twaugh@redhat.com> 3.0-29
1219
+ - Rebuild for new GCC.
1220
+
1221
+ * Thu Feb 17 2005 Tim Waugh <twaugh@redhat.com> 3.0-28
1222
+ - Define _GNU_SOURCE in CPPFLAGS (bug #147573).
1223
+
1224
+ * Mon Feb 14 2005 Tim Waugh <twaugh@redhat.com>
1225
+ - Reverted this change:
1226
+ - Added code to /etc/skel/.bash_logout to support the gpm selection buffer
1227
+ invalidation on virtual terminals (bug #115493).
1228
+
1229
+ * Mon Jan 31 2005 Tim Waugh <twaugh@redhat.com> 3.0-27
1230
+ - Applied upstream patch to fix a potential NULL dereference.
1231
+
1232
+ * Fri Jan 28 2005 Tim Waugh <twaugh@redhat.com> 3.0-26
1233
+ - Fixed job handling bug (bug #145124).
1234
+
1235
+ * Sun Dec 5 2004 Tim Waugh <twaugh@redhat.com> 3.0-25
1236
+ - Applied patch from Florian La Roche to fix CPPFLAGS quoting in spec file.
1237
+
1238
+ * Tue Nov 30 2004 Tim Waugh <twaugh@redhat.com>
1239
+ - Fixed typo in man page (spotted on bug-bash).
1240
+
1241
+ * Thu Nov 18 2004 Tim Waugh <twaugh@redhat.com> 3.0-24
1242
+ - Use upstream patch to fix bug #139575 and bug #139306.
1243
+
1244
+ * Thu Nov 18 2004 Tim Waugh <twaugh@redhat.com> 3.0-23
1245
+ - Fixed last patch to avoid regressions (bug #139575).
1246
+
1247
+ * Mon Nov 15 2004 Tim Waugh <twaugh@redhat.com> 3.0-22
1248
+ - Fixed prompt wrapping code to cope with zero-length prompts (bug #139306).
1249
+
1250
+ * Thu Nov 11 2004 Tim Waugh <twaugh@redhat.com> 3.0-21
1251
+ - Added code to /etc/skel/.bash_logout to support the gpm selection buffer
1252
+ invalidation on virtual terminals (bug #115493).
1253
+
1254
+ * Wed Nov 10 2004 Tim Waugh <twaugh@redhat.com> 3.0-20
1255
+ - Patchlevel 16.
1256
+
1257
+ * Mon Nov 1 2004 Tim Waugh <twaugh@redhat.com>
1258
+ - Patchlevel 15.
1259
+
1260
+ * Tue Oct 19 2004 Tim Waugh <twaugh@redhat.com> 3.0-17
1261
+ - Patchlevel 14.
1262
+ - No longer need brace patch.
1263
+
1264
+ * Wed Sep 29 2004 Tim Waugh <twaugh@redhat.com> 3.0-16
1265
+ - Apply patch from Chet Ramey to fix brace expansion.
1266
+
1267
+ * Fri Sep 24 2004 Tim Waugh <twaugh@redhat.com> 3.0-15
1268
+ - Minor fix for job handling.
1269
+
1270
+ * Mon Sep 13 2004 Tim Waugh <twaugh@redhat.com>
1271
+ - Add bashbug back in (with suffix).
1272
+
1273
+ * Mon Sep 13 2004 Tim Waugh <twaugh@redhat.com>
1274
+ - Remove bash2.
1275
+
1276
+ * Fri Sep 10 2004 Tim Waugh <twaugh@redhat.com> 3.0-14
1277
+ - Don't run tests that read from /dev/tty.
1278
+ - Patchlevel 13.
1279
+
1280
+ * Wed Sep 8 2004 Tim Waugh <twaugh@redhat.com> 3.0-13
1281
+ - Check for EINVAL from waitpid() and avoid WCONTINUED in that case.
1282
+ - Fixed jobs4 test.
1283
+ - Applied experimental upstream patch for trap compatibility.
1284
+ - Re-make documentation to reflect source changes.
1285
+
1286
+ * Tue Sep 7 2004 Tim Waugh <twaugh@redhat.com> 3.0-12
1287
+ - Remove 'bashbug' from the documentation, because we don't ship it due
1288
+ to biarch concerns.
1289
+
1290
+ * Thu Sep 2 2004 Tim Waugh <twaugh@redhat.com> 3.0-11
1291
+ - Fixed multibyte parameter length expansion.
1292
+
1293
+ * Tue Aug 31 2004 Tim Waugh <twaugh@redhat.com> 3.0-9
1294
+ - Fix ulimits patch from Ulrich Drepper (bug #129800).
1295
+
1296
+ * Fri Aug 27 2004 Tim Waugh <twaugh@redhat.com> 3.0-8
1297
+ - Provide support for new limits (bug #129800).
1298
+
1299
+ * Thu Aug 26 2004 Tim Waugh <twaugh@redhat.com> 3.0-7
1300
+ - Use upstream patch for last fix.
1301
+
1302
+ * Thu Aug 26 2004 Tim Waugh <twaugh@redhat.com> 3.0-6
1303
+ - Fixed history saved-line handling.
1304
+
1305
+ * Tue Aug 24 2004 Tim Waugh <twaugh@redhat.com>
1306
+ - Fixed multibyte IFS handling.
1307
+
1308
+ * Wed Aug 18 2004 Tim Waugh <twaugh@redhat.com>
1309
+ - Applied bug-bash list patch to fix pipefail.
1310
+
1311
+ * Tue Aug 17 2004 Tim Waugh <twaugh@redhat.com> 3.0-5
1312
+ - Make trap usage string show POSIX usage (bug #128938).
1313
+ - Updated ${x[@]:1} expansion fix from bug-bash list.
1314
+ - Updated patch to fix unset array crash (from bug-bash list).
1315
+
1316
+ * Sun Aug 15 2004 Tim Waugh <twaugh@redhat.com>
1317
+ - Fix ${x[@]:1} expansion (William Park, bug-bash list).
1318
+
1319
+ * Tue Aug 10 2004 Tim Waugh <twaugh@redhat.com> 3.0-4
1320
+ - Fix vi-change-char behaviour at EOL (bug #129526).
1321
+
1322
+ * Mon Aug 9 2004 Tim Waugh <twaugh@redhat.com> 3.0-3
1323
+ - Applied bug-bash list patch to fix multiline PS1 prompting (bug #129382).
1324
+
1325
+ * Wed Aug 4 2004 Tim Waugh <twaugh@redhat.com> 3.0-2
1326
+ - Fixed brace expansion (bug #129128).
1327
+ - Build with AFS support again, since bug #86514 seems fixed upstream
1328
+ (bug #129094).
1329
+
1330
+ * Tue Aug 3 2004 Tim Waugh <twaugh@redhat.com>
1331
+ - Fixed crash when unsetting an unset array (from bug-bash list).
1332
+
1333
+ * Wed Jul 28 2004 Tim Waugh <twaugh@redhat.com> 3.0-1
1334
+ - 3.0.
1335
+
1336
+ * Wed Jul 21 2004 Tim Waugh <twaugh@redhat.com> 2.05b-44
1337
+ - Don't report SIGPIPE errors (bug #128274).
1338
+
1339
+ * Thu Jul 8 2004 Tim Waugh <twaugh@redhat.com> 2.05b-43
1340
+ - Fixed command substitution problem (bug #127242).
1341
+
1342
+ * Mon Jun 28 2004 Tim Waugh <twaugh@redhat.com> 2.05b-42
1343
+ - Fixed multibyte variable substitution patch (bug #126399).
1344
+
1345
+ * Thu Jun 17 2004 Karsten Hopp <karsten@redhat.de> 2.05b-41
1346
+ - remove bashbug script/docs to avoid conflicting files in
1347
+ biarch installs.
1348
+
1349
+ * Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
1350
+ - rebuilt
1351
+
1352
+ * Fri Jun 4 2004 Tim Waugh <twaugh@redhat.com>
1353
+ - Build requires bison (bug #125307).
1354
+
1355
+ * Wed Jun 2 2004 Tim Waugh <twaugh@redhat.com> 2.05b-39
1356
+ - Build requires libtermcap-devel (bug #125068).
1357
+
1358
+ * Wed May 19 2004 Tim Waugh <twaugh@redhat.com>
1359
+ - Don't ship empty %%{_libdir}/bash (bug #123556).
1360
+
1361
+ * Thu Mar 11 2004 Tim Waugh <twaugh@redhat.com> 2.05b-38
1362
+ - Apply patch from Nalin Dahyabhai fixing an overread.
1363
+
1364
+ * Tue Mar 02 2004 Elliot Lee <sopwith@redhat.com>
1365
+ - rebuilt
1366
+
1367
+ * Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
1368
+ - rebuilt
1369
+
1370
+ * Thu Jan 22 2004 Tim Waugh <twaugh@redhat.com> 2.05b-36
1371
+ - Fix the bug causing bindings to need reparsing .inputrc (bug #114101).
1372
+
1373
+ * Mon Jan 5 2004 Tim Waugh <twaugh@redhat.com> 2.05b-35
1374
+ - Fix parameter expansion in multibyte locales (bug #112657).
1375
+ - Run 'make check'.
1376
+
1377
+ * Tue Dec 9 2003 Tim Waugh <twaugh@redhat.com> 2.05b-34
1378
+ - Build requires texinfo (bug #111171).
1379
+
1380
+ * Fri Nov 28 2003 Tim Waugh <twaugh@redhat.com> 2.05b-33
1381
+ - Speed up UTF-8 command-line redrawing in the common case (bug #102353,
1382
+ bug #110777).
1383
+
1384
+ * Thu Nov 6 2003 Tim Waugh <twaugh@redhat.com> 2.05b-32
1385
+ - Apply upstream patches (bug #109269 among others).
1386
+
1387
+ * Fri Oct 31 2003 Tim Waugh <twaugh@redhat.com>
1388
+ - Fix bash.info (bug #83776).
1389
+
1390
+ * Tue Oct 28 2003 Tim Waugh <twaugh@redhat.com> 2.05b-31
1391
+ - Add bash205b-007 patch to fix bug #106876.
1392
+
1393
+ * Thu Oct 23 2003 Tim Waugh <twaugh@redhat.com> 2.05b-30
1394
+ - Rebuilt.
1395
+
1396
+ * Thu Sep 18 2003 Tim Waugh <twaugh@redhat.com> 2.05b-29.1
1397
+ - Rebuilt.
1398
+
1399
+ * Thu Sep 18 2003 Tim Waugh <twaugh@redhat.com> 2.05b-29
1400
+ - Avoid crashing on multibyte input when locale is set incorrectly
1401
+ (bug #74266).
1402
+
1403
+ * Fri Sep 5 2003 Tim Waugh <twaugh@redhat.com> 2.05b-28.1
1404
+ - Rebuilt.
1405
+
1406
+ * Fri Sep 5 2003 Tim Waugh <twaugh@redhat.com> 2.05b-28
1407
+ - Avoid built-in malloc implementation (bug #103768).
1408
+
1409
+ * Wed Sep 3 2003 Tim Waugh <twaugh@redhat.com> 2.05b-27.1
1410
+ - Rebuilt.
1411
+
1412
+ * Wed Sep 3 2003 Tim Waugh <twaugh@redhat.com> 2.05b-27
1413
+ - LFS support (bug #103627).
1414
+
1415
+ * Thu Jul 31 2003 Tim Waugh <twaugh@redhat.com> 2.05b-26.1
1416
+ - Rebuilt.
1417
+
1418
+ * Thu Jul 31 2003 Tim Waugh <twaugh@redhat.com> 2.05b-26
1419
+ - Merge bash-doc into main package (bug #100632).
1420
+
1421
+ * Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com> 2.05b-25
1422
+ - rebuilt
1423
+
1424
+ * Mon May 12 2003 Tim Waugh <twaugh@redhat.com> 2.05b-24
1425
+ - Fix completion display when multibyte or control characters are to be
1426
+ shown (bug #90201).
1427
+
1428
+ * Tue Mar 26 2003 Tim Waugh <twaugh@redhat.com> 2.05b-23
1429
+ - Fix a warning message (bug #79629).
1430
+ - Don't remove generated source during build, for debuginfo package.
1431
+ - Don't build with AFS support (bug #86514).
1432
+
1433
+ * Tue Mar 25 2003 Tim Waugh <twaugh@redhat.com> 2.05b-22
1434
+ - Really fix bug #78455.
1435
+
1436
+ * Tue Mar 11 2003 Tim Waugh <twaugh@redhat.com> 2.05b-21
1437
+ - Don't explicitly strip binaries (bug #85995).
1438
+
1439
+ * Tue Feb 11 2003 Tim Waugh <twaugh@redhat.com> 2.05b-20
1440
+ - Really fix bug #83331 for good.
1441
+
1442
+ * Mon Feb 10 2003 Tim Waugh <twaugh@redhat.com> 2.05b-19
1443
+ - Fix builtins.1.
1444
+
1445
+ * Fri Feb 7 2003 Tim Waugh <twaugh@redhat.com> 2.05b-18
1446
+ - Actually apply the patch (bug #83331).
1447
+
1448
+ * Wed Feb 5 2003 Tim Waugh <twaugh@redhat.com> 2.05b-17
1449
+ - Fix history/UTF-8 bug (bug #83331).
1450
+
1451
+ * Sun Jan 26 2003 Tim Waugh <twaugh@redhat.com> 2.05b-16
1452
+ - More tab-completion fixing (bug #72512).
1453
+
1454
+ * Wed Jan 22 2003 Tim Powers <timp@redhat.com> 2.05b-15
1455
+ - rebuilt
1456
+
1457
+ * Wed Jan 15 2003 Tim Waugh <twaugh@redhat.com> 2.05b-14
1458
+ - Force pgrp synchronization (bug #81653).
1459
+
1460
+ * Thu Dec 05 2002 Elliot Lee <sopwith@redhat.com> 2.05b-13
1461
+ - (patch26) Don't call 'size' in makefile. Pointless, and interferes with
1462
+ cross compiles.
1463
+
1464
+ * Tue Dec 3 2002 Tim Waugh <twaugh@redhat.com> 2.05b-12
1465
+ - Prevent prompt overwriting output (bug #74383).
1466
+
1467
+ * Wed Nov 27 2002 Tim Waugh <twaugh@redhat.com> 2.05b-11
1468
+ - Fix '-rbash' (bug #78455).
1469
+
1470
+ * Thu Nov 21 2002 Tim Waugh <twaugh@redhat.com> 2.05b-10
1471
+ - Rebuild.
1472
+
1473
+ * Wed Nov 20 2002 Elliot Lee <sopwith@redhat.com>
1474
+ - Use the configure macro instead of calling ./configure directly
1475
+
1476
+ * Wed Nov 13 2002 Tim Waugh <twaugh@redhat.com>
1477
+ - Revert previous change.
1478
+
1479
+ * Wed Nov 13 2002 Tim Waugh <twaugh@redhat.com> 2.05b-8
1480
+ - PreReq libtermcap.
1481
+
1482
+ * Fri Oct 18 2002 Tim Waugh <twaugh@redhat.com> 2.05b-7
1483
+ - Add readline-init patch (bug #74925).
1484
+
1485
+ * Wed Oct 16 2002 Tim Waugh <twaugh@redhat.com> 2.05b-6
1486
+ - Add the (4) patches from ftp.gnu.org (bug #75888, bug #72512).
1487
+ - Ship '.' man page, which doesn't get picked up by glob.
1488
+ - Don't install files not shipped when building.
1489
+ - Locale shell variables fix (bug #74701).
1490
+
1491
+ * Fri Aug 23 2002 Tim Powers <timp@redhat.com> 2.05b-5
1492
+ - re-bzip the docs, something was corrupted
1493
+
1494
+ * Thu Aug 22 2002 Tim Waugh <twaugh@redhat.com> 2.05b-4
1495
+ - Fix history substitution modifiers in UTF-8 (bug #70294, bug #71186).
1496
+ - Fix ADVANCE_CHAR at end of string (bug #70819).
1497
+ - docs: CWRU/POSIX.NOTES no longer exists, but ship POSIX.
1498
+
1499
+ * Wed Aug 07 2002 Phil Knirsch <pknirsch@redhat.com> 2.05b-3
1500
+ - Fixed out of memory problem with readline.
1501
+
1502
+ * Tue Jul 23 2002 Phil Knirsch <pknirsch@redhat.com> 2.05b-2
1503
+ - Added symlink for sh.1 in man1 section so that man sh works (#44039).
1504
+
1505
+ * Mon Jul 22 2002 Phil Knirsch <pknirsch@redhat.com> 2.05b-1
1506
+ - Update to 2.05b
1507
+
1508
+ * Wed Jul 10 2002 Phil Knirsch <pknirsch@redhat.com> 2.05a-16
1509
+ - Fixed readline utf8 problem (#68313).
1510
+
1511
+ * Fri Jun 21 2002 Tim Powers <timp@redhat.com> 2.05a-15
1512
+ - automated rebuild
1513
+
1514
+ * Thu May 23 2002 Tim Powers <timp@redhat.com> 2.05a-14
1515
+ - automated rebuild
1516
+
1517
+ * Fri Apr 12 2002 Tim Powers <timp@redhat.com> 2.05a-13
1518
+ - don't build the stuff in examples/loadables. It breaks FHS
1519
+ compliance
1520
+
1521
+ * Fri Apr 5 2002 Bernhard Rosenkraenzer <bero@redhat.com> 2.05a-12
1522
+ - Fix the fix for #62418
1523
+
1524
+ * Thu Apr 4 2002 Bernhard Rosenkraenzer <bero@redhat.com> 2.05a-11
1525
+ - Fix kill builtin (#62418)
1526
+
1527
+ * Mon Mar 25 2002 Trond Eivind Glomsrød <teg@redhat.com> 2.0.5a-10
1528
+ - Get rid of completion subpackage
1529
+ - Use %%{_tmppath}
1530
+
1531
+ * Mon Mar 11 2002 Bernhard Rosenkraenzer <bero@redhat.com> 2.05a-9
1532
+ - Add patch from Ulrich Drepper to get better error messages when trying
1533
+ to launch an application with a bad ELF interpreter (e.g. libc5 ld.so)
1534
+ (#60870)
1535
+
1536
+ * Fri Feb 22 2002 Bernhard Rosenkraenzer <bero@redhat.com> 2.05a-8
1537
+ - Update completion
1538
+
1539
+ * Wed Jan 30 2002 Bernhard Rosenkraenzer <bero@redhat.com> 2.05a-7
1540
+ - Update completion stuff and move it to a separate package
1541
+
1542
+ * Sat Jan 26 2002 Bernhard Rosenkraenzer <bero@redhat.com> 2.05a-6
1543
+ - Add patches from Ian Macdonald <ian@caliban.org>
1544
+
1545
+ * Wed Jan 23 2002 Bernhard Rosenkraenzer <bero@redhat.com> 2.05a-5
1546
+ - Add programmable completion (optional)
1547
+
1548
+ * Thu Jan 17 2002 Bernhard Rosenkraenzer <bero@redhat.com> 2.05a-4
1549
+ - Fix mailcheck (#57792)
1550
+
1551
+ * Tue Jan 15 2002 Bernhard Rosenkraenzer <bero@redhat.com> 2.05a-3
1552
+ - Fix autoconf mess
1553
+ - Build --with-afs, some users may be using it
1554
+
1555
+ * Wed Jan 09 2002 Tim Powers <timp@redhat.com>
1556
+ - automated rebuild
1557
+
1558
+ * Thu Nov 22 2001 Bernhard Rosenkraenzer <bero@redhat.com> 2.05a-2
1559
+ - Fix conflict with sh-utils (printf builtin manpage vs. printf binary manpage)
1560
+ (#56590)
1561
+
1562
+ * Tue Nov 20 2001 Bernhard Rosenkraenzer <bero@redhat.com> 2.05a-1
1563
+ - 2.05a
1564
+
1565
+ * Wed Oct 10 2001 Florian La Roche <Florian.LaRoche@redhat.de>
1566
+ - disable s390x fix, not needed anymore
1567
+
1568
+ * Mon Oct 1 2001 Bernhard Rosenkraenzer <bero@redhat.com> 2.05-9
1569
+ - Add patch from readline 4.2-3 to bash's internal libreadline
1570
+
1571
+ * Mon Jul 9 2001 Bernhard Rosenkraenzer <bero@redhat.com> 2.05-8
1572
+ - Merge Pekka Savola's patch (RFE#47762)
1573
+
1574
+ * Mon Jul 2 2001 Pekka Savola <pekkas@netcore.fi>
1575
+ - Add IPv6 patch from PLD (only redirection to /dev/{tcp,udp}/host/port
1576
+ support)
1577
+
1578
+ * Sun Jun 24 2001 Bernhard Rosenkraenzer <bero@redhat.com> 2.05-7
1579
+ - Add some bugfix patches from the maintainer
1580
+
1581
+ * Mon Jun 11 2001 Florian La Roche <Florian.LaRoche@redhat.de>
1582
+ - added patch for s390x from <oliver.paukstadt@millenux.com>
1583
+
1584
+ * Wed May 23 2001 Bernhard Rosenkraenzer <bero@redhat.com> 2.05-5
1585
+ - Don't set BASH_ENV in .bash_profile, it causes .bashrc to be sourced
1586
+ twice in interactive non-login shells.
1587
+ - s/Copyright/License/
1588
+
1589
+ * Fri May 5 2001 Bernhard Rosenkraenzer <bero@redhat.com> 2.05-4
1590
+ - Fix tempfile creation in bashbug
1591
+
1592
+ * Wed May 2 2001 Preston Brown <pbrown@redhat.com> 2.05-3
1593
+ - bashrc moved to setup package
1594
+
1595
+ * Tue Apr 24 2001 Bernhard Rosenkraenzer <bero@redhat.com> 2.05-2
1596
+ - bash comes with its own copy of readline... Add the patches we're
1597
+ applying in the readline package.
1598
+
1599
+ * Tue Apr 24 2001 Bernhard Rosenkraenzer <bero@redhat.com> 2.05-1
1600
+ - Update to 2.05
1601
+ - Change PROMPT_COMMAND in bashrc for xterms
1602
+ to something less space consuming (#24159)
1603
+ - Provide plugs for alternate prompt commands (#30634), but don't
1604
+ default to them
1605
+
1606
+ * Mon Mar 19 2001 Preston Brown <pbrown@redhat.com>
1607
+ - add default aliases for 'dir' and 'df' to have human readable output
1608
+
1609
+ * Wed Feb 28 2001 Matt Wilson <msw@redhat.com>
1610
+ - don't Prereq: /sbin/install-info!
1611
+
1612
+ * Tue Feb 27 2001 Preston Brown <pbrown@redhat.com>
1613
+ - noreplace config files
1614
+ - don't own /etc/skel directory
1615
+
1616
+ * Wed Feb 22 2001 Harald Hoyer <harald@redhat.de>
1617
+ - changed /etc/bashrc to work with backspace = 0177 (rxvt)
1618
+
1619
+ * Wed Feb 07 2001 Florian La Roche <Florian.LaRoche@redhat.de>
1620
+ - changed /etc/skel/.bash_profile to "unset USERNAME"
1621
+
1622
+ * Mon Feb 5 2001 Yukihiro Nakai <ynakai@redhat.com>
1623
+ - Delete Japanese resources from dot-bashrc
1624
+ and move them to each package.
1625
+
1626
+ * Fri Dec 15 2000 Yukihiro Nakai <ynakai@redhat.com>
1627
+ - Add Japanese resource to dot-bashrc
1628
+
1629
+ * Mon Dec 11 2000 Bernhard Rosenkraenzer <bero@redhat.com>
1630
+ - rebuild to get rid of 0777 doc dirs
1631
+
1632
+ * Thu Nov 16 2000 Bernhard Rosenkraenzer <bero@redhat.com>
1633
+ - restore the ^Hs in documentation, they're highlighting sequences
1634
+ for less (#20654)
1635
+
1636
+ * Fri Sep 15 2000 Florian La Roche <Florian.LaRoche@redhat.de>
1637
+ - bash-2.04-export.patch is reported to fix compilation
1638
+ of older glibc-2.1 sources
1639
+
1640
+ * Tue Aug 22 2000 Matt Wilson <msw@redhat.com>
1641
+ - fixed the summary of bash-doc to use %%{version} instead of "2.03"
1642
+
1643
+ * Tue Aug 8 2000 Bill Nottingham <notting@redhat.com>
1644
+ - 'exit' in bashrc is very bad.
1645
+
1646
+ * Tue Aug 8 2000 Bernhard Rosenkraenzer <bero@redhat.com>
1647
+ - minor bashrc fix (Bug #8518)
1648
+
1649
+ * Mon Jul 17 2000 Bernhard Rosenkraenzer <bero@redhat.com>
1650
+ - Don't use tput etc. in bashrc if /usr isn't available (Bug #14116)
1651
+
1652
+ * Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
1653
+ - automatic rebuild
1654
+
1655
+ * Thu Jun 22 2000 Bill Nottingham <notting@redhat.com>
1656
+ - fix for some IA-64 issues from Stephane Eranian
1657
+
1658
+ * Thu Jun 15 2000 Bernhard Rosenkraenzer <bero@redhat.com>
1659
+ - Fix summary and description, they had old version numbers (Bug #12092)
1660
+
1661
+ * Tue Jun 6 2000 Bill Nottingham <notting@redhat.com>
1662
+ - add /etc/skel/.bash* ; obsolete etcskel
1663
+
1664
+ * Tue May 2 2000 Bill Nottingham <notting@redhat.com>
1665
+ - fix for shell functions on 64-bit architectures...
1666
+
1667
+ * Wed Mar 29 2000 Bernhard Rosenkraenzer <bero@redhat.com>
1668
+ - Add some backwards compatibility (for i in ; do something; done)
1669
+
1670
+ * Tue Mar 21 2000 Bernhard Rosenkraenzer <bero@redhat.com>
1671
+ - 2.04 final
1672
+ - remove the echo, pwd, test and kill man pages from the package,
1673
+ we're getting them from sh-utils
1674
+
1675
+ * Sun Mar 19 2000 Bernhard Rosenkraenzer <bero@redhat.com>
1676
+ - 2.04beta5
1677
+ - adapt patches
1678
+ - Fix up bashrc
1679
+ - Don't put in bashrc1, this should be done by the bash1 package
1680
+ - use install -c instead of plain install to work on *BSD
1681
+ - remove the collected patches - they're now in the base version.
1682
+ - make compressed man pages optional
1683
+
1684
+ * Thu Mar 16 2000 Florian La Roche <Florian.LaRoche@redhat.com>
1685
+ - add some collected patches for bash2
1686
+ - change it over to be the main bash package
1687
+ - install man-pages root:root
1688
+ - obsolete bash2, bash2-doc
1689
+
1690
+ * Wed Feb 02 2000 Cristian Gafton <gafton@redhat.com>
1691
+ - man pages are compressed
1692
+ - fix description
1693
+
1694
+ * Thu Dec 2 1999 Ken Estes <kestes@staff.mail.com>
1695
+ - updated patch to detect what executables are required by a script.
1696
+
1697
+ * Fri Sep 14 1999 Dale Lovelace <dale@redhat.com>
1698
+ - Remove annoying ^H's from documentation
1699
+
1700
+ * Fri Jul 16 1999 Ken Estes <kestes@staff.mail.com>
1701
+ - patch to detect what executables are required by a script.
1702
+
1703
+ * Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
1704
+ - auto rebuild in the new build environment (release 4)
1705
+
1706
+ * Fri Mar 19 1999 Jeff Johnson <jbj@redhat.com>
1707
+ - strip binaries.
1708
+ - include bash-doc correctly.
1709
+
1710
+ * Thu Mar 18 1999 Preston Brown <pbrown@redhat.com>
1711
+ - fixed post/postun /etc/shells work.
1712
+
1713
+ * Thu Mar 18 1999 Cristian Gafton <gafton@redhat.com>
1714
+ - updated again text in the spec file
1715
+
1716
+ * Mon Feb 22 1999 Jeff Johnson <jbj@redhat.com>
1717
+ - updated text in spec file.
1718
+ - update to 2.03.
1719
+
1720
+ * Fri Feb 12 1999 Cristian Gafton <gafton@redhat.com>
1721
+ - build it as bash2 instead of bash
1722
+
1723
+ * Tue Feb 9 1999 Bill Nottingham <notting@redhat.com>
1724
+ - set 'NON_INTERACTIVE_LOGIN_SHELLS' so profile gets read
1725
+
1726
+ * Thu Jan 14 1999 Jeff Johnson <jbj@redhat.com>
1727
+ - rename man pages in bash-doc to avoid packaging conflicts (#606).
1728
+
1729
+ * Wed Dec 02 1998 Cristian Gafton <gafton@redhat.com>
1730
+ - patch for the arm
1731
+ - use $RPM_ARCH-redhat-linux as the build target
1732
+
1733
+ * Tue Oct 6 1998 Bill Nottingham <notting@redhat.com>
1734
+ - rewrite %%pre, axe %%postun (to avoid prereq loops)
1735
+
1736
+ * Wed Aug 19 1998 Jeff Johnson <jbj@redhat.com>
1737
+ - resurrect for RH 6.0.
1738
+
1739
+ * Sun Jul 26 1998 Jeff Johnson <jbj@redhat.com>
1740
+ - update to 2.02.1
1741
+
1742
+ * Thu Jun 11 1998 Jeff Johnson <jbj@redhat.com>
1743
+ - Package for 5.2.
1744
+
1745
+ * Mon Apr 20 1998 Ian Macdonald <ianmacd@xs4all.nl>
1746
+ - added POSIX.NOTES doc file
1747
+ - some extraneous doc files removed
1748
+ - minor .spec file changes
1749
+
1750
+ * Sun Apr 19 1998 Ian Macdonald <ianmacd@xs4all.nl>
1751
+ - upgraded to version 2.02
1752
+ - Alpha, MIPS & Sparc patches removed due to lack of test platforms
1753
+ - glibc & signal patches no longer required
1754
+ - added documentation subpackage (doc)
1755
+
1756
+ * Fri Nov 07 1997 Donnie Barnes <djb@redhat.com>
1757
+ - added signal handling patch from Dean Gaudet <dgaudet@arctic.org> that
1758
+ is based on a change made in bash 2.0. Should fix some early exit
1759
+ problems with suspends and fg.
1760
+
1761
+ * Mon Oct 20 1997 Donnie Barnes <djb@redhat.com>
1762
+ - added %%clean
1763
+
1764
+ * Mon Oct 20 1997 Erik Troan <ewt@redhat.com>
1765
+ - added comment explaining why install-info isn't used
1766
+ - added mips patch
1767
+
1768
+ * Fri Oct 17 1997 Donnie Barnes <djb@redhat.com>
1769
+ - added BuildRoot
1770
+
1771
+ * Tue Jun 03 1997 Erik Troan <ewt@redhat.com>
1772
+ - built against glibc