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.
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
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
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
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.