rpms/bash/devel bash32-001, NONE, 1.1 bash32-002, NONE, 1.1 bash32-003, NONE, 1.1 bash32-004, NONE, 1.1 bash32-005, NONE, 1.1 bash32-006, NONE, 1.1 bash32-007, NONE, 1.1 bash32-008, NONE, 1.1 bash32-009, NONE, 1.1 .cvsignore, 1.8, 1.9 bash-2.05a-interpreter.patch, 1.4, 1.5 bash.spec, 1.123, 1.124 sources, 1.12, 1.13 bash-aq.patch, 1.1, NONE bash-login.patch, 1.1, NONE bash-read-memleak.patch, 1.1, NONE bash-sighandler.patch, 1.10, NONE bash-ulimit.patch, 1.7, NONE bash31-001, 1.1, NONE bash31-002, 1.1, NONE bash31-003, 1.1, NONE bash31-004, 1.1, NONE bash31-005, 1.1, NONE bash31-006, 1.1, NONE bash31-007, 1.1, NONE bash31-008, 1.1, NONE bash31-009, 1.1, NONE bash31-010, 1.2, NONE bash31-011, 1.1, NONE bash31-012, 1.1, NONE bash31-013, 1.1, NONE bash31-014, 1.1, NONE bash31-015, 1.1, NONE bash31-016, 1.1, NONE bash31-017, 1.1, NONE
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Fri Dec 15 18:02:34 UTC 2006
- Previous message (by thread): rpms/dbus/FC-6 dbus-1.0.1-fix-upgrade-mess.patch, NONE, 1.1 session.conf, NONE, 1.1 system.conf, NONE, 1.1 dbus.spec, 1.108, 1.109 dbus-1.0.0-dont-die-on-error.patch, 1.1, NONE
- Next message (by thread): rpms/kernel/FC-6/configs config-generic,1.259,1.260
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: twaugh
Update of /cvs/dist/rpms/bash/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv314
Modified Files:
.cvsignore bash-2.05a-interpreter.patch bash.spec sources
Added Files:
bash32-001 bash32-002 bash32-003 bash32-004 bash32-005
bash32-006 bash32-007 bash32-008 bash32-009
Removed Files:
bash-aq.patch bash-login.patch bash-read-memleak.patch
bash-sighandler.patch bash-ulimit.patch bash31-001 bash31-002
bash31-003 bash31-004 bash31-005 bash31-006 bash31-007
bash31-008 bash31-009 bash31-010 bash31-011 bash31-012
bash31-013 bash31-014 bash31-015 bash31-016 bash31-017
Log Message:
Update to 3.2.
--- NEW FILE bash32-001 ---
BASH PATCH REPORT
=================
Bash-Release: 3.2
Patch-ID: bash32-001
Bug-Reported-by: Greg Schafer <gschafer at zip.com.au>
Bug-Reference-ID: <20061012084940.GA15768 at tigers.local>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html
Bug-Description:
When using historical ``-style command substitution, bash incorrectly attempts
to interpret shell comments while scanning for the closing backquote.
Patch:
*** ../bash-3.2/parse.y Tue Sep 19 16:37:21 2006
--- parse.y Thu Oct 12 10:30:57 2006
***************
*** 2736,2740 ****
count = 1;
pass_next_character = backq_backslash = was_dollar = in_comment = 0;
! check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
/* RFLAGS is the set of flags we want to pass to recursive calls. */
--- 2736,2740 ----
count = 1;
pass_next_character = backq_backslash = was_dollar = in_comment = 0;
! check_comment = (flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
/* RFLAGS is the set of flags we want to pass to recursive calls. */
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
--- patchlevel.h Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 0
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 1
#endif /* _PATCHLEVEL_H_ */
--- NEW FILE bash32-002 ---
BASH PATCH REPORT
=================
Bash-Release: 3.2
Patch-ID: bash32-002
Bug-Reported-by: Jim Gifford <jim at jg555.com>
Bug-Reference-ID: <12j2pc3aq35mb04 at corp.supernews.com>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00082.html
Bug-Description:
An incorrect encoding specification in the Content-Type header causes msgfmt
to fail, which causes `make install' to fail.
Patch:
*** ../bash-3.2/po/ru.po Tue Jan 10 17:51:03 2006
--- po/ru.po Mon Oct 16 15:13:23 2006
***************
*** 13,17 ****
"Language-Team: Russian <ru at li.org>\n"
"MIME-Version: 1.0\n"
! "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
--- 13,17 ----
"Language-Team: Russian <ru at li.org>\n"
"MIME-Version: 1.0\n"
! "Content-Type: text/plain; charset=KOI8-R\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
--- patchlevel.h Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 1
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 2
#endif /* _PATCHLEVEL_H_ */
--- NEW FILE bash32-003 ---
BASH PATCH REPORT
=================
Bash-Release: 3.2
Patch-ID: bash32-003
Bug-Reported-by: John Gatewood Ham <zappaman at buraphalinux.org>
Bug-Reference-ID: <Pine.LNX.4.64.0610121334140.15558 at www.buraphalinux.org>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00045.html
Bug-Description:
When using the conditional command's `=~' operator to match regular
expressions, the parser did not skip over shell metacharacters in the
regular expression, leading to syntax errors.
Patch:
*** ../bash-3.2-patched/parse.y Tue Oct 17 11:45:20 2006
--- parse.y Sat Oct 14 14:56:16 2006
***************
*** 1029,1034 ****
--- 1029,1035 ----
#define PST_CMDTOKEN 0x1000 /* command token OK - unused */
#define PST_COMPASSIGN 0x2000 /* parsing x=(...) compound assignment */
#define PST_ASSIGNOK 0x4000 /* assignment statement ok in this context */
+ #define PST_REGEXP 0x8000 /* parsing an ERE/BRE as a single word */
/* Initial size to allocate for tokens, and the
amount to grow them by. */
***************
*** 2591,2596 ****
--- 2592,2600 ----
return (character);
}
+ if (parser_state & PST_REGEXP)
+ goto tokword;
+
/* Shell meta-characters. */
if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0))
{
***************
*** 2698,2703 ****
--- 2702,2708 ----
if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND))
return (character);
+ tokword:
/* Okay, if we got this far, we have to read a word. Read one,
and then check it against the known ones. */
result = read_token_word (character);
***************
*** 3202,3209 ****
if (tok == WORD && test_binop (yylval.word->word))
op = yylval.word;
#if defined (COND_REGEXP)
! else if (tok == WORD && STREQ (yylval.word->word,"=~"))
! op = yylval.word;
#endif
else if (tok == '<' || tok == '>')
op = make_word_from_token (tok); /* ( */
--- 3207,3217 ----
if (tok == WORD && test_binop (yylval.word->word))
op = yylval.word;
#if defined (COND_REGEXP)
! else if (tok == WORD && STREQ (yylval.word->word, "=~"))
! {
! op = yylval.word;
! parser_state |= PST_REGEXP;
! }
#endif
else if (tok == '<' || tok == '>')
op = make_word_from_token (tok); /* ( */
***************
*** 3234,3239 ****
--- 3242,3248 ----
/* rhs */
tok = read_token (READ);
+ parser_state &= ~PST_REGEXP;
if (tok == WORD)
{
tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL);
***************
*** 3419,3427 ****
goto next_character;
}
#ifdef EXTENDED_GLOB
/* Parse a ksh-style extended pattern matching specification. */
! if (extended_glob && PATTERN_CHAR (character))
{
peek_char = shell_getc (1);
if MBTEST(peek_char == '(') /* ) */
--- 3428,3461 ----
goto next_character;
}
+ #ifdef COND_REGEXP
+ /* When parsing a regexp as a single word inside a conditional command,
+ we need to special-case characters special to both the shell and
+ regular expressions. Right now, that is only '(' and '|'. */ /*)*/
+ if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|')) /*)*/
+ {
+ if (character == '|')
+ goto got_character;
+
+ push_delimiter (dstack, character);
+ ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0);
+ pop_delimiter (dstack);
+ if (ttok == &matched_pair_error)
+ return -1; /* Bail immediately. */
+ RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
+ token_buffer_size, TOKEN_DEFAULT_GROW_SIZE);
+ token[token_index++] = character;
+ strcpy (token + token_index, ttok);
+ token_index += ttoklen;
+ FREE (ttok);
+ dollar_present = all_digit_token = 0;
+ goto next_character;
+ }
+ #endif /* COND_REGEXP */
+
#ifdef EXTENDED_GLOB
/* Parse a ksh-style extended pattern matching specification. */
! if MBTEST(extended_glob && PATTERN_CHAR (character))
{
peek_char = shell_getc (1);
if MBTEST(peek_char == '(') /* ) */
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
--- patchlevel.h Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 2
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 3
#endif /* _PATCHLEVEL_H_ */
--- NEW FILE bash32-004 ---
BASH PATCH REPORT
=================
Bash-Release: 3.2
Patch-ID: bash32-004
Bug-Reported-by: Stuart Shelton <srcshelton at gmail.com>
Bug-Reference-ID: <619141e40610261203y6cda5aa6i23cb24c7aeba996e at mail.gmail.com>
Bug-Reference-URL:
Bug-Description:
A bug in the parameter pattern substitution implementation treated a pattern
whose first character was `/' (after expansion) as specifying global
replacement.
Patch:
*** ../bash-3.2/subst.c Tue Sep 19 08:35:09 2006
--- subst.c Thu Oct 26 09:17:50 2006
***************
*** 5707,5712 ****
--- 5707,5717 ----
vtype &= ~VT_STARSUB;
mflags = 0;
+ if (patsub && *patsub == '/')
+ {
+ mflags |= MATCH_GLOBREP;
+ patsub++;
+ }
/* Malloc this because expand_string_if_necessary or one of the expansion
functions in its call chain may free it on a substitution error. */
***************
*** 5741,5753 ****
}
/* ksh93 doesn't allow the match specifier to be a part of the expanded
! pattern. This is an extension. */
p = pat;
! if (pat && pat[0] == '/')
! {
! mflags |= MATCH_GLOBREP|MATCH_ANY;
! p++;
! }
else if (pat && pat[0] == '#')
{
mflags |= MATCH_BEG;
--- 5746,5757 ----
}
/* ksh93 doesn't allow the match specifier to be a part of the expanded
! pattern. This is an extension. Make sure we don't anchor the pattern
! at the beginning or end of the string if we're doing global replacement,
! though. */
p = pat;
! if (mflags & MATCH_GLOBREP)
! mflags |= MATCH_ANY;
else if (pat && pat[0] == '#')
{
mflags |= MATCH_BEG;
*** ../bash-3.2/tests/new-exp.right Thu Aug 10 12:00:00 2006
--- tests/new-exp.right Sun Oct 29 16:03:36 2006
***************
*** 430,436 ****
Case06---1---A B C::---
Case07---3---A:B:C---
Case08---3---A:B:C---
! ./new-exp.tests: line 506: /${$(($#-1))}: bad substitution
argv[1] = <a>
argv[2] = <b>
argv[3] = <c>
--- 430,436 ----
Case06---1---A B C::---
Case07---3---A:B:C---
Case08---3---A:B:C---
! ./new-exp.tests: line 506: ${$(($#-1))}: bad substitution
argv[1] = <a>
argv[2] = <b>
argv[3] = <c>
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
--- patchlevel.h Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 3
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 4
#endif /* _PATCHLEVEL_H_ */
--- NEW FILE bash32-005 ---
BASH PATCH REPORT
=================
Bash-Release: 3.2
Patch-ID: bash32-005
Bug-Reported-by: Stuart Shelton <stuart at openobjects.com>
Bug-Reference-ID: <453F7CC8.6030907 at openobjects.com>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00127.html
Bug-Description:
A missing extern declaration for `asprintf' caused `double' arguments to be
passed as `0', leading to incorrect results. Additionally, a bug in the
replacement asprintf/snprintf function caused an infinite loop when passed
0 arguments to the floating point conversions under some circumstances.
Patch:
*** ../bash-3.2/builtins/printf.def Mon Sep 18 08:48:42 2006
--- builtins/printf.def Tue Oct 31 08:19:44 2006
***************
*** 49,54 ****
--- 49,60 ----
# define INT_MIN (-2147483647-1)
#endif
+ #if defined (PREFER_STDARG)
+ # include <stdarg.h>
+ #else
+ # include <varargs.h>
+ #endif
+
#include <stdio.h>
#include <chartypes.h>
***************
*** 151,156 ****
--- 157,166 ----
#define SKIP1 "#'-+ 0"
#define LENMODS "hjlLtz"
+ #ifndef HAVE_ASPRINTF
+ extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3)));
+ #endif
+
static void printf_erange __P((char *));
static int printstr __P((char *, char *, int, int, int));
static int tescape __P((char *, char *, int *));
*** ../bash-3.2/lib/sh/snprintf.c Thu Apr 6 09:48:40 2006
--- lib/sh/snprintf.c Sat Oct 28 00:00:13 2006
***************
*** 471,476 ****
--- 476,483 ----
10^x ~= r
* log_10(200) = 2;
* log_10(250) = 2;
+ *
+ * NOTE: do not call this with r == 0 -- an infinite loop results.
*/
static int
log_10(r)
***************
*** 576,583 ****
{
integral_part[0] = '0';
integral_part[1] = '\0';
! fraction_part[0] = '0';
! fraction_part[1] = '\0';
if (fract)
*fract = fraction_part;
return integral_part;
--- 583,593 ----
{
integral_part[0] = '0';
integral_part[1] = '\0';
! /* The fractional part has to take the precision into account */
! for (ch = 0; ch < precision-1; ch++)
! fraction_part[ch] = '0';
! fraction_part[ch] = '0';
! fraction_part[ch+1] = '\0';
if (fract)
*fract = fraction_part;
return integral_part;
***************
*** 805,810 ****
--- 815,821 ----
PUT_CHAR(*tmp, p);
tmp++;
}
+
PAD_LEFT(p);
}
***************
*** 972,982 ****
if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
tmp = t;
/* calculate the padding. 1 for the dot */
p->width = p->width -
((d > 0. && p->justify == RIGHT) ? 1:0) -
((p->flags & PF_SPACE) ? 1:0) -
! strlen(tmp) - p->precision - 1;
PAD_RIGHT(p);
PUT_PLUS(d, p, 0.);
PUT_SPACE(d, p, 0.);
--- 983,1003 ----
if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
tmp = t;
+ if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
+ {
+ /* smash the trailing zeros unless altform */
+ for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
+ tmp2[i] = '\0';
+ if (tmp2[0] == '\0')
+ p->precision = 0;
+ }
+
/* calculate the padding. 1 for the dot */
p->width = p->width -
((d > 0. && p->justify == RIGHT) ? 1:0) -
((p->flags & PF_SPACE) ? 1:0) -
! strlen(tmp) - p->precision -
! ((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0); /* radix char */
PAD_RIGHT(p);
PUT_PLUS(d, p, 0.);
PUT_SPACE(d, p, 0.);
***************
*** 991,1001 ****
if (p->precision != 0 || (p->flags & PF_ALTFORM))
PUT_CHAR(decpoint, p); /* put the '.' */
- if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
- /* smash the trailing zeros unless altform */
- for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
- tmp2[i] = '\0';
-
for (; *tmp2; tmp2++)
PUT_CHAR(*tmp2, p); /* the fraction */
--- 1012,1017 ----
***************
*** 1011,1024 ****
char *tmp, *tmp2;
int j, i;
! if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))
return; /* already printed nan or inf */
GETLOCALEDATA(decpoint, thoussep, grouping);
DEF_PREC(p);
! j = log_10(d);
! d = d / pow_10(j); /* get the Mantissa */
! d = ROUND(d, p);
tmp = dtoa(d, p->precision, &tmp2);
/* 1 for unit, 1 for the '.', 1 for 'e|E',
--- 1027,1045 ----
char *tmp, *tmp2;
int j, i;
! if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)))
return; /* already printed nan or inf */
GETLOCALEDATA(decpoint, thoussep, grouping);
DEF_PREC(p);
! if (d == 0.)
! j = 0;
! else
! {
! j = log_10(d);
! d = d / pow_10(j); /* get the Mantissa */
! d = ROUND(d, p);
! }
tmp = dtoa(d, p->precision, &tmp2);
/* 1 for unit, 1 for the '.', 1 for 'e|E',
***************
*** 1076,1081 ****
--- 1097,1103 ----
PUT_CHAR(*tmp, p);
tmp++;
}
+
PAD_LEFT(p);
}
#endif
***************
*** 1358,1364 ****
STAR_ARGS(data);
DEF_PREC(data);
d = GETDOUBLE(data);
! i = log_10(d);
/*
* for '%g|%G' ANSI: use f if exponent
* is in the range or [-4,p] exclusively
--- 1380,1386 ----
STAR_ARGS(data);
DEF_PREC(data);
d = GETDOUBLE(data);
! i = (d != 0.) ? log_10(d) : -1;
/*
* for '%g|%G' ANSI: use f if exponent
* is in the range or [-4,p] exclusively
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
--- patchlevel.h Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 4
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 5
#endif /* _PATCHLEVEL_H_ */
--- NEW FILE bash32-006 ---
BASH PATCH REPORT
=================
Bash-Release: 3.2
Patch-ID: bash32-006
Bug-Reported-by: ebb9 at byu.net
Bug-Reference-ID: <45540862.9030900 at byu.net>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html
http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html
Bug-Description:
In some cases, code that is intended to be used in the presence of multibyte
characters is called when no such characters are present, leading to incorrect
display position calculations and incorrect redisplay.
Patch:
*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006
--- lib/readline/display.c Mon Nov 13 17:55:57 2006
***************
*** 2381,2384 ****
--- 2409,2414 ----
if (end <= start)
return 0;
+ if (MB_CUR_MAX == 1 || rl_byte_oriented)
+ return (end - start);
memset (&ps, 0, sizeof (mbstate_t));
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
--- patchlevel.h Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 5
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 6
#endif /* _PATCHLEVEL_H_ */
--- NEW FILE bash32-007 ---
BASH PATCH REPORT
=================
Bash-Release: 3.2
Patch-ID: bash32-007
Bug-Reported-by: jidanni at jidanni.org
Bug-Reference-ID: <E1Gkg12-00017D-Fm at jidanni.org>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00039.html
Bug-Description:
When removing the current or previous job from the jobs list, bash incorrectly
resets the current job under some circumstances.
Patch:
*** ../bash-3.2-patched/jobs.c Sat Jul 29 16:40:48 2006
--- jobs.c Fri Nov 24 14:50:01 2006
***************
*** 985,990 ****
if (temp == 0)
return;
- if (job_index == js.j_current || job_index == js.j_previous)
- reset_current ();
if ((dflags & DEL_NOBGPID) == 0)
--- 985,988 ----
***************
*** 1029,1032 ****
--- 1027,1033 ----
else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0)
reset_job_indices ();
+
+ if (job_index == js.j_current || job_index == js.j_previous)
+ reset_current ();
}
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
--- patchlevel.h Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 6
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 7
#endif /* _PATCHLEVEL_H_ */
--- NEW FILE bash32-008 ---
BASH PATCH REPORT
=================
Bash-Release: 3.2
Patch-ID: bash32-008
Bug-Reported-by: Linda Walsh <bash at tlinx.org>
Bug-Reference-ID: <456041FD.8000605 at tlinx.org>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00040.html
Bug-Description:
When checking pathnames from the command hash table (e.g., when the `checkhash'
shell option is enabled), a bug causes bash to delete and re-lookup each
command.
Patch:
*** ../bash-3.2-patched/findcmd.c Wed Aug 17 16:49:54 2005
--- findcmd.c Fri Nov 24 10:48:37 2006
***************
*** 309,313 ****
{
st = file_status (hashed_file);
! if ((st ^ (FS_EXISTS | FS_EXECABLE)) != 0)
{
phash_remove (pathname);
--- 309,313 ----
{
st = file_status (hashed_file);
! if ((st & (FS_EXISTS|FS_EXECABLE)) != (FS_EXISTS|FS_EXECABLE))
{
phash_remove (pathname);
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
--- patchlevel.h Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 7
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 8
#endif /* _PATCHLEVEL_H_ */
--- NEW FILE bash32-009 ---
BASH PATCH REPORT
=================
Bash-Release: 3.2
Patch-ID: bash32-009
Bug-Reported-by: James.M.Botte at lowes.com
Bug-Reference-ID: <BA9FF90F7E5B424998F98EDA9F1F94BE01FA9853 at msexchdb01.lowes.com>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00000.html
Bug-Description:
When using its built-in replacement for snprintf/asprintf, bash does not
treat the %x, %X, and %o format specifiers as unsigned numbers.
Patch:
*** ../bash-3.2-patched/lib/sh/snprintf.c Mon Nov 13 08:58:52 2006
--- lib/sh/snprintf.c Wed Dec 6 11:15:04 2006
***************
*** 669,673 ****
sd = d; /* signed for ' ' padding in base 10 */
! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
if (*p->pf == 'X')
flags |= FL_HEXUPPER;
--- 674,679 ----
sd = d; /* signed for ' ' padding in base 10 */
! flags = 0;
! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
if (*p->pf == 'X')
flags |= FL_HEXUPPER;
***************
*** 739,743 ****
sd = d; /* signed for ' ' padding in base 10 */
! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
if (*p->pf == 'X')
flags |= FL_HEXUPPER;
--- 745,749 ----
sd = d; /* signed for ' ' padding in base 10 */
! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
if (*p->pf == 'X')
flags |= FL_HEXUPPER;
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
--- patchlevel.h Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 8
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 9
#endif /* _PATCHLEVEL_H_ */
Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/bash/devel/.cvsignore,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- .cvsignore 9 Sep 2004 03:32:28 -0000 1.8
+++ .cvsignore 15 Dec 2006 18:02:32 -0000 1.9
@@ -1,2 +1,4 @@
bash-3.0.tar.gz
bash-doc-3.0.tar.gz
+bash-3.2.tar.gz
+bash-doc-3.2.tar.gz
bash-2.05a-interpreter.patch:
config.h.in | 6 ++
configure.in | 4 -
execute_cmd.c | 144 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
3 files changed, 151 insertions(+), 3 deletions(-)
Index: bash-2.05a-interpreter.patch
===================================================================
RCS file: /cvs/dist/rpms/bash/devel/bash-2.05a-interpreter.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- bash-2.05a-interpreter.patch 2 Jan 2006 11:02:47 -0000 1.4
+++ bash-2.05a-interpreter.patch 15 Dec 2006 18:02:32 -0000 1.5
@@ -1,28 +1,6 @@
---- bash-3.1/config.h.in.interpreter 2005-12-23 15:53:21.000000000 +0000
-+++ bash-3.1/config.h.in 2005-12-23 15:53:21.000000000 +0000
-@@ -622,6 +622,9 @@
- /* Define if you have the pathconf function. */
- #undef HAVE_PATHCONF
-
-+/* Define if you have the pread function. */
-+#undef HAVE_PREAD
-+
- /* Define if you have the putenv function. */
- #undef HAVE_PUTENV
-
-@@ -783,6 +786,9 @@
- /* Define if you have the <dlfcn.h> header file. */
- #undef HAVE_DLFCN_H
-
-+/* Define if you have the <elf.h> header file. */
-+#undef HAVE_ELF_H
-+
- /* Define if you have the <grp.h> header file. */
- #undef HAVE_GRP_H
-
---- bash-3.1/configure.in.interpreter 2005-12-01 14:36:03.000000000 +0000
-+++ bash-3.1/configure.in 2005-12-23 15:55:10.000000000 +0000
-@@ -632,7 +632,7 @@
+--- bash-3.2/configure.in.interpreter 2006-09-26 16:05:45.000000000 +0100
++++ bash-3.2/configure.in 2006-12-15 17:56:15.000000000 +0000
+@@ -634,7 +634,7 @@
AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
@@ -31,17 +9,17 @@
AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
sys/resource.h sys/param.h sys/socket.h sys/stat.h \
sys/time.h sys/times.h sys/types.h sys/wait.h)
-@@ -695,7 +695,7 @@
- AC_CHECK_FUNCS(dup2 fcntl getdtablesize getgroups gethostname getpagesize \
- getpeername getrlimit getrusage gettimeofday kill killpg \
- lstat readlink sbrk select setdtablesize tcgetpgrp uname \
-- ulimit waitpid)
-+ ulimit waitpid pread)
+@@ -698,7 +698,7 @@
+ AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
+ getpagesize getpeername getrlimit getrusage gettimeofday \
+ kill killpg lstat readlink sbrk select setdtablesize \
+- tcgetpgrp uname ulimit waitpid)
++ tcgetpgrp uname ulimit waitpid pread)
AC_REPLACE_FUNCS(rename)
dnl checks for c library functions
---- bash-3.1/execute_cmd.c.interpreter 2005-12-23 15:53:21.000000000 +0000
-+++ bash-3.1/execute_cmd.c 2005-12-23 15:56:44.000000000 +0000
+--- bash-3.2/execute_cmd.c.interpreter 2006-12-15 17:55:53.000000000 +0000
++++ bash-3.2/execute_cmd.c 2006-12-15 17:55:53.000000000 +0000
@@ -40,6 +40,10 @@
# include <unistd.h>
#endif
@@ -53,7 +31,7 @@
#include "posixtime.h"
#if defined (HAVE_SYS_RESOURCE_H) && !defined (RLIMTYPE)
-@@ -3872,13 +3876,21 @@
+@@ -3953,13 +3957,21 @@
{
/* The file has the execute bits set, but the kernel refuses to
run it for some reason. See why. */
@@ -76,7 +54,7 @@
interp = getinterp (sample, sample_len, (int *)NULL);
ilen = strlen (interp);
errno = i;
-@@ -3894,6 +3906,136 @@
+@@ -3975,6 +3987,136 @@
return (EX_NOEXEC);
}
#endif
@@ -213,3 +191,25 @@
errno = i;
file_error (command);
}
+--- bash-3.2/config.h.in.interpreter 2006-12-15 17:55:53.000000000 +0000
++++ bash-3.2/config.h.in 2006-12-15 17:55:53.000000000 +0000
+@@ -646,6 +646,9 @@
+ /* Define if you have the pathconf function. */
+ #undef HAVE_PATHCONF
+
++/* Define if you have the pread function. */
++#undef HAVE_PREAD
++
+ /* Define if you have the putenv function. */
+ #undef HAVE_PUTENV
+
+@@ -823,6 +826,9 @@
+ /* Define if you have the <dlfcn.h> header file. */
+ #undef HAVE_DLFCN_H
+
++/* Define if you have the <elf.h> header file. */
++#undef HAVE_ELF_H
++
+ /* Define if you have the <grp.h> header file. */
+ #undef HAVE_GRP_H
+
Index: bash.spec
===================================================================
RCS file: /cvs/dist/rpms/bash/devel/bash.spec,v
retrieving revision 1.123
retrieving revision 1.124
diff -u -r1.123 -r1.124
--- bash.spec 12 Jul 2006 13:09:55 -0000 1.123
+++ bash.spec 15 Dec 2006 18:02:32 -0000 1.124
@@ -1,7 +1,7 @@
-Version: 3.1
+Version: 3.2
Name: bash
Summary: The GNU Bourne Again shell (bash) version %{version}.
-Release: 16.1
+Release: 1%{?dist}
Group: System Environment/Shells
License: GPL
Url: http://www.gnu.org/software/bash
@@ -11,41 +11,28 @@
Source4: dot-bash_profile
Source5: dot-bash_logout
# Official upstream patches
-Patch1: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-001
-Patch2: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-002
-Patch3: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-003
-Patch4: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-004
-Patch5: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-005
-Patch6: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-006
-Patch7: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-007
-Patch8: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-008
-Patch9: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-009
-Patch10: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-010
-Patch11: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-011
-Patch12: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-012
-Patch13: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-013
-Patch14: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-014
-Patch15: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-015
-Patch16: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-016
-Patch17: ftp://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-017
+Patch1: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-001
+Patch2: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-002
+Patch3: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-003
+Patch4: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-004
+Patch5: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-005
+Patch6: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-006
+Patch7: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-007
+Patch8: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-008
+Patch9: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-009
# Other patches
Patch100: bash-2.03-paths.patch
Patch101: bash-2.02-security.patch
Patch102: bash-2.03-profile.patch
Patch103: bash-requires.patch
-Patch105: bash-aq.patch
-Patch106: bash-login.patch
Patch107: bash-2.05a-interpreter.patch
Patch108: bash-2.05b-readline-oom.patch
-Patch112: bash-ulimit.patch
Patch114: bash-2.05b-xcc.patch
Patch115: bash-2.05b-pgrp_sync.patch
Patch116: bash-2.05b-manso.patch
Patch117: bash-2.05b-debuginfo.patch
Patch118: bash-tty-tests.patch
Patch126: bash-setlocale.patch
-Patch127: bash-sighandler.patch
-Patch129: bash-read-memleak.patch
Patch130: bash-infotags.patch
Prefix: %{_prefix}
Requires: mktemp
@@ -76,33 +63,20 @@
%patch7 -p0 -b .007
%patch8 -p0 -b .008
%patch9 -p0 -b .009
-%patch10 -p0 -b .010
-%patch11 -p0 -b .011
-%patch12 -p0 -b .012
-%patch13 -p0 -b .013
-%patch14 -p0 -b .014
-%patch15 -p0 -b .015
-%patch16 -p0 -b .016
-%patch17 -p0 -b .017
# Other patches
%patch100 -p1 -b .paths
%patch101 -p1 -b .security
%patch102 -p1 -b .profile
%patch103 -p1 -b .requires
-%patch105 -p1 -b .aq
-%patch106 -p1 -b .login
%patch107 -p1 -b .interpreter
%patch108 -p1 -b .readline-oom
-%patch112 -p1 -b .ulimit
%patch114 -p1 -b .xcc
%patch115 -p1 -b .pgrp_sync
%patch116 -p1 -b .manso
%patch117 -p1 -b .debuginfo
%patch118 -p1 -b .tty-tests
%patch126 -p1 -b .setlocale
-%patch127 -p1 -b .sighandler
-%patch129 -p1 -b .read-memleak
%patch130 -p1 -b .infotags
echo %{version} > _distribution
@@ -236,6 +210,10 @@
%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
%changelog
+* Fri Dec 15 2006 Tim Waugh <twaugh at redhat.com>
+- 3.2. No longer need aq, login, ulimit, sighandler or read-memleak
+ patches.
+
* Wed Jul 12 2006 Tim Waugh <twaugh at redhat.com> 3.1-17
- Fixed 'tags out of date' problem with 'info bash' (bug #150118).
Index: sources
===================================================================
RCS file: /cvs/dist/rpms/bash/devel/sources,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- sources 2 Jan 2006 11:04:34 -0000 1.12
+++ sources 15 Dec 2006 18:02:32 -0000 1.13
@@ -1,2 +1,2 @@
-ef5304c4b22aaa5088972c792ed45d72 bash-3.1.tar.gz
-a8c517c6a7b21b8b855190399c5935ae bash-doc-3.1.tar.gz
+00bfa16d58e034e3c2aa27f390390d30 bash-3.2.tar.gz
+0e904cb46ca873fcfa65df19b024bec9 bash-doc-3.2.tar.gz
--- bash-aq.patch DELETED ---
--- bash-login.patch DELETED ---
--- bash-read-memleak.patch DELETED ---
--- bash-sighandler.patch DELETED ---
--- bash-ulimit.patch DELETED ---
--- bash31-001 DELETED ---
--- bash31-002 DELETED ---
--- bash31-003 DELETED ---
--- bash31-004 DELETED ---
--- bash31-005 DELETED ---
--- bash31-006 DELETED ---
--- bash31-007 DELETED ---
--- bash31-008 DELETED ---
--- bash31-009 DELETED ---
--- bash31-010 DELETED ---
--- bash31-011 DELETED ---
--- bash31-012 DELETED ---
--- bash31-013 DELETED ---
--- bash31-014 DELETED ---
--- bash31-015 DELETED ---
--- bash31-016 DELETED ---
--- bash31-017 DELETED ---
- Previous message (by thread): rpms/dbus/FC-6 dbus-1.0.1-fix-upgrade-mess.patch, NONE, 1.1 session.conf, NONE, 1.1 system.conf, NONE, 1.1 dbus.spec, 1.108, 1.109 dbus-1.0.0-dont-die-on-error.patch, 1.1, NONE
- Next message (by thread): rpms/kernel/FC-6/configs config-generic,1.259,1.260
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list