gzip/zgrep.diff
Marcus Meissner 3489662bec Accepting request 968007 from home:dirkmueller:Factory
- update to 1.12:
  * 'gzip -l' no longer misreports file lengths 4 GiB and larger.
    Previously, 'gzip -l' output the 32-bit value stored in the gzip
    header even though that is the uncompressed length modulo 2**32.
    Now, 'gzip -l' calculates the uncompressed length by decompressing
    the data and counting the resulting bytes.  Although this can take
    much more time, nowadays the correctness pros seem to outweigh the
    performance cons.
  * 'zless' is no longer installed on platforms lacking 'less'.
  * zgrep applied to a crafted file name with two or more newlines
    can no longer overwrite an arbitrary, attacker-selected file.
    [bug introduced in gzip-1.3.10]
  * zgrep now names input file on error instead of mislabeling it as
    "(standard input)", if grep supports the GNU -H and --label options.
  * 'zdiff -C 5' no longer misbehaves by treating '5' as a file name.
  * Configure-time options like --program-prefix now work.
- refresh zdiff.diff, zgrep.diff, zmore.diff

OBS-URL: https://build.opensuse.org/request/show/968007
OBS-URL: https://build.opensuse.org/package/show/Base:System/gzip?expand=0&rev=86
2022-04-09 12:42:32 +00:00

25 lines
621 B
Diff

Index: zgrep.in
===================================================================
--- zgrep.in.orig
+++ zgrep.in
@@ -211,10 +211,18 @@ res=1
for i
do
+ case "$i" in
+ *.bz2)
+ uncompress=bzip2
+ ;;
+ *)
+ uncompress=gzip
+ ;;
+ esac
# Fail if gzip or grep (or sed) fails.
gzip_status=$(
exec 5>&1
- ('gzip' -cdfq -- "$i" 5>&-; echo $? >&5) 3>&- |
+ ($uncompress -cdfq -- "$i" 5>&-; echo $? >&5) 3>&- |
if test $files_with_matches -eq 1; then
eval "$grep$args" >/dev/null && { printf '%s\n' "$i" || exit 2; }
elif test $files_without_matches -eq 1; then