summaryrefslogtreecommitdiffstats
path: root/usr.bin
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2011-05-23 09:40:21 +0000
committerdelphij <delphij@FreeBSD.org>2011-05-23 09:40:21 +0000
commitc7822ff2b13b979d341e0870a19099ab66e168ba (patch)
tree1647df00a65a93608603382a71314a1477b63354 /usr.bin
parentf71ef98f21035641932d7e1aa2311e27af0fd5eb (diff)
downloadFreeBSD-src-c7822ff2b13b979d341e0870a19099ab66e168ba.zip
FreeBSD-src-c7822ff2b13b979d341e0870a19099ab66e168ba.tar.gz
Match symbolic link handling behavior with GNU gzip, bzip2 and xz:
When we are operating on a symbolic link pointing to an existing file, bail out by default, but go ahead if -f is specified. Submitted by: arundel MFC after: 2 weeks
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/gzip/gzip.18
-rw-r--r--usr.bin/gzip/gzip.c2
2 files changed, 5 insertions, 5 deletions
diff --git a/usr.bin/gzip/gzip.1 b/usr.bin/gzip/gzip.1
index 848a4b3..c0dc670 100644
--- a/usr.bin/gzip/gzip.1
+++ b/usr.bin/gzip/gzip.1
@@ -25,7 +25,7 @@
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD$
-.Dd April 27, 2010
+.Dd May 23, 2011
.Dt GZIP 1
.Os
.Sh NAME
@@ -127,9 +127,9 @@ stream, leaving files intact.
This option selects decompression rather than compression.
.It Fl f , -force
This option turns on force mode.
-This allows files with multiple links, overwriting of pre-existing
-files, reading from or writing to a terminal, and when combined
-with the
+This allows files with multiple links, symbolic links to regular files,
+overwriting of pre-existing files, reading from or writing to a terminal,
+and when combined with the
.Fl c
option, allowing non-compressed data to pass through unchanged.
.It Fl h , -help
diff --git a/usr.bin/gzip/gzip.c b/usr.bin/gzip/gzip.c
index 474575c..927493e 100644
--- a/usr.bin/gzip/gzip.c
+++ b/usr.bin/gzip/gzip.c
@@ -1782,7 +1782,7 @@ handle_pathname(char *path)
}
retry:
- if (stat(path, &sb) != 0) {
+ if (stat(path, &sb) != 0 || (fflag == 0 && lstat(path, &sb) != 0)) {
/* lets try <path>.gz if we're decompressing */
if (dflag && s == NULL && errno == ENOENT) {
len = strlen(path);
OpenPOWER on IntegriCloud