Module Name:    src
Committed By:   mrg
Date:           Tue Jan 13 02:37:20 UTC 2015

Modified Files:
        src/usr.bin/gzip: gzip.1 gzip.c

Log Message:
do not use directory paths present in gzip files with the -N flag,
similar to the problem reported in pigz.


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/usr.bin/gzip/gzip.1
cvs rdiff -u -r1.106 -r1.107 src/usr.bin/gzip/gzip.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/gzip/gzip.1
diff -u src/usr.bin/gzip/gzip.1:1.23 src/usr.bin/gzip/gzip.1:1.24
--- src/usr.bin/gzip/gzip.1:1.23	Tue Mar 18 18:20:45 2014
+++ src/usr.bin/gzip/gzip.1	Tue Jan 13 02:37:20 2015
@@ -1,4 +1,4 @@
-.\"	$NetBSD: gzip.1,v 1.23 2014/03/18 18:20:45 riastradh Exp $
+.\"	$NetBSD: gzip.1,v 1.24 2015/01/13 02:37:20 mrg Exp $
 .\"
 .\" Copyright (c) 1997, 2003, 2004 Matthew R. Green
 .\" All rights reserved.
@@ -24,7 +24,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd June 18, 2011
+.Dd January 13, 2015
 .Dt GZIP 1
 .Os
 .Sh NAME
@@ -191,7 +191,7 @@ program for
 This manual documents
 .Nx
 .Nm
-version 20040427.
+version 20150113.
 .Sh AUTHORS
 This implementation of
 .Nm

Index: src/usr.bin/gzip/gzip.c
diff -u src/usr.bin/gzip/gzip.c:1.106 src/usr.bin/gzip/gzip.c:1.107
--- src/usr.bin/gzip/gzip.c:1.106	Sat Oct 18 08:33:30 2014
+++ src/usr.bin/gzip/gzip.c	Tue Jan 13 02:37:20 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: gzip.c,v 1.106 2014/10/18 08:33:30 snj Exp $	*/
+/*	$NetBSD: gzip.c,v 1.107 2015/01/13 02:37:20 mrg Exp $	*/
 
 /*
  * Copyright (c) 1997, 1998, 2003, 2004, 2006 Matthew R. Green
@@ -30,7 +30,7 @@
 #ifndef lint
 __COPYRIGHT("@(#) Copyright (c) 1997, 1998, 2003, 2004, 2006\
  Matthew R. Green.  All rights reserved.");
-__RCSID("$NetBSD: gzip.c,v 1.106 2014/10/18 08:33:30 snj Exp $");
+__RCSID("$NetBSD: gzip.c,v 1.107 2015/01/13 02:37:20 mrg Exp $");
 #endif /* not lint */
 
 /*
@@ -160,7 +160,7 @@ static suffixes_t suffixes[] = {
 #define NUM_SUFFIXES (sizeof suffixes / sizeof suffixes[0])
 #define SUFFIX_MAXLEN	30
 
-static	const char	gzip_version[] = "NetBSD gzip 20101018";
+static	const char	gzip_version[] = "NetBSD gzip 20150113";
 
 static	int	cflag;			/* stdout mode */
 static	int	dflag;			/* decompress mode */
@@ -1311,7 +1311,7 @@ file_uncompress(char *file, char *outfil
 #ifndef SMALL
 	ssize_t rv;
 	time_t timestamp = 0;
-	unsigned char name[PATH_MAX + 1];
+	char name[PATH_MAX + 1];
 #endif
 
 	/* gather the old name info */
@@ -1372,15 +1372,24 @@ file_uncompress(char *file, char *outfil
 				goto lose;
 			}
 			if (name[0] != 0) {
+				char *dp, *nf;
+
+				/* strip saved directory name */
+				nf = strrchr(name, '/');
+				if (nf == NULL)
+					nf = name;
+				else
+					nf++;
+
 				/* preserve original directory name */
-				char *dp = strrchr(file, '/');
+				dp = strrchr(file, '/');
 				if (dp == NULL)
 					dp = file;
 				else
 					dp++;
 				snprintf(outfile, outsize, "%.*s%.*s",
 						(int) (dp - file), 
-						file, (int) rbytes, name);
+						file, (int) rbytes, nf);
 			}
 		}
 	}

Reply via email to