[PATCH MIPS] Work around Bash 4.2 bug

Ludovic Courtès ludo@gnu.org
Mon Oct 3 14:09:00 GMT 2016


"Maciej W. Rozycki" <macro@imgtec.com> skribis:

> On Fri, 30 Sep 2016, Hans-Peter Nilsson wrote:
>
>> > The patch below works around the Bash 4.2 bug described at
>> > <http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-007>.
>> 
>> > 	* emulparams/elf32bmipn32-defs.sh: Shift quote of
>> > 	"x$EMULATION_NAME" to the left to work around
>> > 	<http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-007>.
>> >
>> 
>> >
>> > -case x"$EMULATION_NAME" in
>> > +case "x$EMULATION_NAME" in
>> >  xelf32*n32*) ELFSIZE=32 ;;

[...]

>  Also for the purpose of such a check what does x"$EMULATION_NAME" expand 
> to in the buggy case given a specific value of $EMULATION_NAME?

Here’s a sample:

--8<---------------cut here---------------start------------->8---
$ echo $BASH_VERSION
4.2.0(1)-release
$ unset EMULATION_NAME
$ echo x$EMULATION_NAME
x
$ echo x"$EMULATION_NAME"
x
$ case x"$EMULATION_NAME" in x) echo good;; *) echo bad;; esac
bad
$ case "x$EMULATION_NAME" in x) echo good;; *) echo bad;; esac
good
$ echo x"$EMULATION_NAME"y
xy
$ echo "x$EMULATION_NAME"y
xy
--8<---------------cut here---------------end--------------->8---

IOW, the problem manifests in ‘case’ statements, but not in ‘echo’.

I agree that rejecting such buggy shells at configure time would be
safer.

There’s been 1 year between Bash 4.2 and Bash 4.3, and 3 weeks between
Bash 4.2 and the ‘bash42-007’ fix; not sure how widespread the buggy
shell is.

HTH,
Ludo’.



More information about the Binutils mailing list