Commit Graph

17 Commits

Author SHA1 Message Date
Peter Wemm
022effcc3e Fix an annoying bug in tar. When it converted 'tar zcf' to 'tar -z -c -f'
it forgot to null terminate the new argv[] array.  If you mixed this
with $TAR_OPTIONS, phkmalloc and a whole bunch of other variables, you
could end up with a segfault.  This isn't strictly a phkmalloc victory
since tar walks off the end of an array rather than use uninitialized
malloc memory, but phkmalloc makes it easier to provoke.
2003-07-24 00:04:01 +00:00
David E. O'Brien
8d5c19ffbc Centralize _PATH_* definitions.
Submitted by:	Tim Kientzle <kientzle@acm.org> (embellished by me)
2003-05-05 22:49:23 +00:00
Maxim Sobolev
be23b71211 Fix security bug in contains_dot_dot routine.
PR:             43575
Submitted by:   Brett Glass <brett@lariat.org>

X-MFC after:	immediately
2002-10-19 09:32:03 +00:00
Maxim Sobolev
cfd0804eaf Don't kill itself in --fast-read mode if there is no decompressor started.
Reported by:	Gordon Tetlow <gordont@gnf.org>
Submitted by:	tjr
MFC after:	1 week
		(along with other --fast-read changes)
2002-10-09 07:33:29 +00:00
Maxim Sobolev
35f96a88c8 Further improve --fast-read mode - when reading archive from stdin ensure that
SIGTERM we are sending to decompressor when there is nothing left to do is
actually delivered to decompressor, not to the another copy of tar, which
does unblocking.

MFC after:	2 weeks
2002-10-02 08:42:06 +00:00
Maxim Sobolev
301ca7cf84 In the --fast-read mode send SIGTERM to decompressor once we have extracted
all files we have been asked for. This vastly improves performance of
pkg_add(1), because usually it only extract +CONTENTS file in --fast-read
mode, checks it and only then extracts full content of tarball in normal
mode. Without this patch, it have had to decompress the tarball twice,
effectively doubling consumed CPU time.

MFC after:	1 week
2002-09-09 06:00:16 +00:00
Maxim Sobolev
ec7c30a0f5 Move even closer to matching behaviour of our old tar(1) wrt preserving
modes of extracted files. This effectively disables special threating
of uid 0 for mode-preserving purposes and should fix problems with
pkg_add(1) and probably other things when extracting files/dirs with
sticky mode bits set.

Pointed out by:	bde
MFC in:		2 weeks
2002-08-01 17:32:08 +00:00
Maxim Sobolev
55955aa970 MFS: make this file compilable with gcc 2.9x as well. 2002-07-14 13:25:51 +00:00
Maxim Sobolev
18febd99fb Fix another POLA breakage in a new tar: in diff mode presence of file
in the archive, but its absence in the file system should be reported
as difference, not as error.

Reported by:	bde
2002-07-03 13:01:40 +00:00
Maxim Sobolev
b19918bd36 When we are extracting directory with --unlink option and the directory
already exists don't spew bogus "Cannot unlink" error and exit with
non-zero code.

Reported by:	bde
2002-07-03 12:44:31 +00:00
Maxim Sobolev
065a383b82 Our strerror_r(3) returns int, not char *. This fixes bogus error messages
like "Cannot stat: (null)"

Reported by:    bde, kris
2002-06-16 12:35:17 +00:00
Maxim Sobolev
3729010bdd Disabling automatic --same-owner option when running as uid 0 along with
the --same-permissions was an overkill, so put it back. This is consistent
with what our old tar did.

Suggested by:	dillon
2002-06-07 06:02:35 +00:00
Maxim Sobolev
c44513507c IMO it was a quite ugly idea that if we are running as uid 0 then we can
safely ignore current umask(2) and assume that permissions should be set
right like in the archive. Not only it violates POLA, but introduces
huge potential security vulnerability, particularly for ports, where
many popular archives come with 777 files and dirs.
2002-06-07 00:03:23 +00:00
Maxim Sobolev
b513ac40e2 Move patches into the src/contrib/tar.
Requested by:   ps
Reviewed by:    md5(1)
2002-06-04 17:31:16 +00:00
Maxim Sobolev
0f4e165dc0 Add importing/upgrading instructions. 2002-06-04 11:08:12 +00:00
Maxim Sobolev
2eb8d11ba7 Add razor used for shaving out GNU Tar. 2002-06-04 10:40:50 +00:00
Maxim Sobolev
011b358aba Virgin import (trimmed) of GNU Tar version 1.13.25. 2002-06-04 10:37:47 +00:00