xzgrep: Make the fix for ZDI-CAN-16587 more robust.

I don't know if this can make a difference in the real world
but it looked kind of suspicious (what happens with sed
implementations that cannot process very long lines?).
At least this commit shouldn't make it worse.
This commit is contained in:
Lasse Collin 2022-07-19 00:10:55 +03:00
parent 2c1ff2ed6b
commit 6351ea1afb
1 changed files with 4 additions and 1 deletions

View File

@ -223,7 +223,10 @@ for i; do
case $i in case $i in
(*' (*'
'* | *'&'* | *'\'* | *'|'*) '* | *'&'* | *'\'* | *'|'*)
i=$(printf '%s\n' "$i" | LC_ALL=C sed 's/[&\|]/\\&/g; $!s/$/\\/');; # If sed fails, set i to a known safe string to ensure that
# failing sed didn't create a half-escaped dangerous string.
i=$(printf '%s\n' "$i" | LC_ALL=C sed 's/[&\|]/\\&/g; $!s/$/\\/') ||
i='(unknown filename):';;
esac esac
# $i already ends with a colon so don't add it here. # $i already ends with a colon so don't add it here.