components/gzip/patches/znew.patch
author Jan Noha <jan.noha@oracle.com>
Thu, 24 Apr 2014 17:36:25 +0200
branchs11u2-sru
changeset 3388 68cefdb716e2
parent 2799 1d47fff1ffff
child 3811 6e696f960e14
permissions -rw-r--r--
18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2799
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     1
From b3b5611e046b93fb20aa783d6d11d986f33f91f6 Mon Sep 17 00:00:00 2001
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     2
From: Paul Eggert <eggert <at> cs.ucla.edu>
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     3
Date: Thu, 3 Oct 2013 21:12:09 -0700
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     4
Subject: [PATCH] znew: avoid denial-of-service issue
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     5
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     6
Reported by Rich Burridge in <http://bugs.gnu.org/15522>.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     7
* znew.in: Rewrite to avoid the need for a temporary file in /tmp.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     8
That way, we avoid the need for set -C
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     9
and worrying about denial of service.
3388
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
    10
Use touch -r and python rather than cpmod.
2799
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    11
Assume cp -p works, as it's now universal.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    12
Quote 'echo' args better, while we're at it.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    13
(warn, tmp, cpmod, cpmodarg): Remove.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    14
(GZIP): Unset, so that we needn't test for gzip extension.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    15
(ext): Now always '.gz'.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    16
* znew.1: Document the change of implementation assumptions.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    17
---
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    18
diff --git a/znew.1 b/znew.1
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    19
index dcdf84f..2a7e5e1 100644
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    20
--- a/znew.1
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    21
+++ b/znew.1
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    22
@@ -32,9 +32,16 @@ Keep a .Z file when it is smaller than the .gz file; implies
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    23
 .SH "SEE ALSO"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    24
 gzip(1), zmore(1), zdiff(1), zgrep(1), zforce(1), gzexe(1), compress(1)
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    25
 .SH BUGS
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    26
-.I Znew
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    27
-does not maintain the time stamp with the -P option if
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    28
-.I cpmod(1)
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    29
-is not available and
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    30
-.I touch(1)
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    31
-does not support the -r option.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    32
+If the
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    33
+.B \-P
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    34
+option is used,
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    35
+.I znew
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    36
+does not maintain the time stamp if
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    37
+.IR touch (1)
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    38
+does not support the
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    39
+.B \-r
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    40
+option, and does not maintain permissions if
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    41
+.IR chmod (1)
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    42
+does not support the
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    43
+.B \-\-reference
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    44
+option.
3388
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
    45
--- gzip-1.5/znew.in	2014-04-24 14:54:00.798820086 +0200
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
    46
+++ gzip-1.5/znew.in	2014-04-24 14:53:49.388094138 +0200
2799
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    47
@@ -21,7 +21,7 @@
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    48
 case $1 in
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    49
 --__bindir) bindir=${2?}; shift; shift;;
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    50
 esac
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    51
-PATH=$bindir:$PATH; export PATH
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    52
+PATH=/usr/gnu/bin:$bindir:$PATH; export PATH
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    53
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    54
 version="znew (gzip) @VERSION@
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    55
 Copyright (C) 2010-2012 Free Software Foundation, Inc.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    56
@@ -58,33 +58,9 @@ new=0
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    57
 block=1024
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    58
 # block is the disk block size (best guess, need not be exact)
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    59
 
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    60
-warn="(does not preserve modes and timestamp)"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    61
-tmp=${TMPDIR-/tmp}/zfoo.$$
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    62
-set -C
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    63
-echo hi > $tmp || exit
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    64
-if test -z "`(${CPMOD-cpmod} $tmp $tmp) 2>&1`"; then
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    65
-  cpmod=${CPMOD-cpmod}
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    66
-  warn=""
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    67
-fi
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    68
-
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    69
-if test -z "$cpmod" && ${TOUCH-touch} -r $tmp $tmp 2>/dev/null; then
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    70
-  cpmod="${TOUCH-touch}"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    71
-  cpmodarg="-r"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    72
-  warn="(does not preserve file modes)"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    73
-fi
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    74
-
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    75
-# check if GZIP env. variable uses -S or --suffix
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    76
-gzip -q $tmp
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    77
-ext=`echo $tmp* | sed "s|$tmp||"`
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    78
-rm -f $tmp*
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    79
-if test -z "$ext"; then
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    80
-  echo znew: error determining gzip extension
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    81
-  exit 1
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    82
-fi
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    83
-if test "$ext" = ".Z"; then
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    84
-  echo znew: cannot use .Z as gzip extension.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    85
-  exit 1
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    86
-fi
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    87
+# Beware -s or --suffix in $GZIP.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    88
+unset GZIP
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    89
+ext=.gz
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    90
 
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    91
 for arg
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    92
 do
3388
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
    93
@@ -116,26 +92,32 @@ if test -n "$opt"; then
2799
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    94
 fi
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    95
 
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    96
 for i do
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    97
-  n=`echo $i | sed 's/.Z$//'`
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    98
+  n=`echo "$i" | sed 's/.Z$//'`
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    99
   if test ! -f "$n.Z" ; then
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   100
-    echo $n.Z not found
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   101
+    echo "$n.Z not found"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   102
     res=1; continue
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   103
   fi
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   104
   test $keep -eq 1 && old=`wc -c < "$n.Z"`
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   105
   if test $pipe -eq 1; then
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   106
     if gzip -d < "$n.Z" | gzip $opt > "$n$ext"; then
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   107
       # Copy file attributes from old file to new one, if possible.
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   108
-      test -n "$cpmod" && $cpmod $cpmodarg "$n.Z" "$n$ext" 2> /dev/null
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   109
+      touch -r"$n.Z" -- "$n$ext" 2>/dev/null
3388
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
   110
+      python -c '
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
   111
+	      import os
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
   112
+	      import sys
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
   113
+	      mode = os.stat(sys.argv[1]).st_mode & 07777
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
   114
+	      os.chmod(sys.argv[2], mode)
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
   115
+      ' "$n.Z" "$n$ext"
2799
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   116
     else
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   117
-      echo error while recompressing $n.Z
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   118
+      echo "error while recompressing $n.Z"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   119
       res=1; continue
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   120
     fi
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   121
   else
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   122
     if test $check -eq 1; then
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   123
-      if cp -p "$n.Z" "$n.$$" 2> /dev/null || cp "$n.Z" "$n.$$"; then
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   124
+      if cp -p "$n.Z" "$n.$$"; then
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   125
         :
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   126
       else
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   127
-        echo cannot backup "$n.Z"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   128
+        echo "cannot backup $n.Z"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   129
         res=1; continue
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   130
       fi
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   131
     fi
3388
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
   132
@@ -143,7 +125,7 @@ for i do
2799
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   133
       :
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   134
     else
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   135
       test $check -eq 1 && mv "$n.$$" "$n.Z"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   136
-      echo error while uncompressing $n.Z
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   137
+      echo "error while uncompressing $n.Z"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   138
       res=1; continue
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   139
     fi
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   140
     if gzip $opt "$n"; then
3388
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
   141
@@ -151,10 +133,10 @@ for i do
2799
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   142
     else
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   143
       if test $check -eq 1; then
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   144
         mv "$n.$$" "$n.Z" && rm -f "$n"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   145
-        echo error while recompressing $n
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   146
+        echo "error while recompressing $n"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   147
       else
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   148
         # compress $n  (might be dangerous if disk full)
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   149
-        echo error while recompressing $n, left uncompressed
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   150
+        echo "error while recompressing $n, left uncompressed"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   151
       fi
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   152
       res=1; continue
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   153
     fi
3388
68cefdb716e2 18385582 compress/gzip package bringing in extra dependancies with fix for 15440739
Jan Noha <jan.noha@oracle.com>
parents: 2799
diff changeset
   154
@@ -175,7 +157,7 @@ for i do
2799
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   155
     else
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   156
       test $pipe -eq 0 && mv "$n.$$" "$n.Z"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   157
       rm -f "$n$ext"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   158
-      echo error while testing $n$ext, $n.Z unchanged
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   159
+      echo "error while testing $n$ext, $n.Z unchanged"
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   160
       res=1; continue
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   161
     fi
1d47fff1ffff 15440739 SUNBT6633578 gzcmp/gzdiff + gznew shell scripts use temporary files unsafely
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
   162
   elif test $pipe -eq 1; then