Hello Frank

I think that had you tested the devel branch instead of the last
release, you could have skipped a lot of testing (but how would you
have known? it's an easy thing to miss).
https://savannah.gnu.org/patch/?10035 seems to have gone the "easy
fix", which you discarded to get a more thorough one.
I was impressed as well by your careful analysis.

Chet, I think you should consider if Frank patch isn't better than the
previous one.
I agree however that it should be published as an official patch.
1/512th chance of corruption, and only on certain bash versions is
unlikely to be noticed easily. Which is doesn't mean this isn't really
important. Think for instance what could happen with this affecting a
pass(1) wrapper.


Frank, I don't think your harsh mail is appropriate, even though I feel
your frustration.

By the way, your reproducer is not working for me with an unpatched 5.1.8:
> printf "%511s\xc3\xa4" | env -i LC_MONETARY=C.UTF-8 ./bash-5.1.8/bash /tmp/bb 
> | sha1sum 
> c4df63043ca5b49c0a236e2ec7424ae8c34d7bad

which is just "%511s\xc3\xa4\n"

The other test case (reproducer.sh) does show the bug with the same
binary.

Or, an even simpler one (assuming a utf-8 locale, like almost everyone uses 
these days):
$ printf "%511s\xc3\xa4" | ./bash -c 'a="$(echo a)"; d=$(cat); echo "$d"' | sed 
's/^ *//'
Ö�

where it should have output:
ä


As for patching the systems, I think this deserves being patched even
on stable distros. Albeit I would prefer that Chet released an official
patch first.


Best regards


Reply via email to