| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Add a test to exercise this feature.
This should fix --sparse/-S support in tar.
Thanks to: Daichi GOTO
Notes:
svn path=/stable/7/; revision=188367
|
| |
|
|
|
|
|
|
|
|
| |
parsing and beef up the ISO9660 bidder. This makes the
ISO reader a lot more robust when reading malformed input.
Approved by: re
Notes:
svn path=/stable/7/; revision=185770
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
archive_entry attributes to be explicitly "unset".
This fixes a number of issues:
* Zip archives with "length at end" can now be
extracted correctly, since the Zip extractor
can simply mark the size as "unknown."
* Extract-to-disk can now accurately handle
cases with partial time information (e.g.,
mtime is known but not atime)
* We get more accurate handling of different
hardlink extraction cases; sometimes a hardlink
entry has definitive size information and sometimes
not.
Approved by: re
Notes:
svn path=/stable/7/; revision=185408
|
| |
|
|
|
|
|
|
|
|
|
|
| |
setting the ACL changes the mtime. (Plus a new test to exercise
basic ACL restore logic.)
PR: kern/128203
Submitted by: Udo Schweigert
Approved by: re (Kostik Belousov)
Notes:
svn path=/stable/7/; revision=184195
|
| |
|
|
|
|
|
|
|
| |
existing dirs.
Approved by: re (Kostik Belousov)
Notes:
svn path=/stable/7/; revision=182956
|
| |
|
|
|
|
|
|
|
| |
instead of substituting mtime
Approved by: re (Ken Smith)
Notes:
svn path=/stable/7/; revision=182811
|
| |
|
|
|
|
|
| |
PR: bin/124915
Notes:
svn path=/stable/7/; revision=182512
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=182235
|
| |
|
|
|
|
|
| |
to disk. (Used by cpio to generate proper block counts in -p mode.)
Notes:
svn path=/stable/7/; revision=182234
|
| |
|
|
|
|
|
|
|
|
|
| |
With SECURE_NODOTDOT, this isn't needed because we refuse to restore
anything with '..' in the path. Without, we used to refuse path/..
as a special case (on the grounds that it was silly), but "cpio -p .."
is a common and perfectly valid idiom that incidentally copies "."
to "..".
Notes:
svn path=/stable/7/; revision=182230
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this, the often-recommended incantation
find -d . | cpio -p <target>
fails to properly carry through dir metadata because each
file copy implicitly creates the parent dir, which cpio subsequently
refuses to overwrite. With this patch, the incantation works
with or without the -d option to find because without it, there
is no implicit dir creation, and with it, the subsequent dir
restore will update the metadata on the dir.
Notes:
svn path=/stable/7/; revision=182228
|
| |
|
|
|
|
|
|
| |
works against the libarchive 1.x API. Not needed by 7-STABLE, but
it's nice to minimize the differences between 7-STABLE and CURRENT.
Notes:
svn path=/stable/7/; revision=182131
|
| |
|
|
|
|
|
|
| |
> MfP4: Joerg Sonnenberger's fixes to make 'ar' and 'pax' writers
> robust against multiple calls to their destroy() functions.
Notes:
svn path=/stable/7/; revision=181498
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=181495
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=181494
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=181493
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=181492
|
| |
|
|
|
|
|
|
|
|
| |
Cumulatively, these implement CRC32 validation when reading Zip
archives and the test suite updates to ensure that CRC32
checking really will fail on a damaged entry and succeed on
a valid one.
Notes:
svn path=/stable/7/; revision=181491
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=181490
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
> Check that lseek(2) succeeds and puts us where we expect. [1]
>
> While we're here, fix a long-standing bug in the handling of write(2)
> errors: The API changed from "return # of bytes written" to "return
> status code" almost 4 years ago, so instead of returning (-1) we need
> to return ARCHIVE_FATAL.
>
> Found by: Coverity Prevent [1]
Notes:
svn path=/stable/7/; revision=181488
|
| |
|
|
|
|
|
|
|
|
| |
> We only use the string "?rwxrwxrwx " once, so inline it rather than
> declaring a variable which points to it. Aside from eliminating a
> line of code and one level of unnecessary indirection, this eliminates
> a false positive in Coverity.
Notes:
svn path=/stable/7/; revision=181487
|
| |
|
|
|
|
|
|
|
|
| |
> r179125 | cperciva | 2008-05-19 11:06:48 -0700 (Mon, 19 May 2008) | 5 lines
> Return ARCHIVE_FATAL if we can't allocate memory instead of going ahead and
> dereferencing NULL.
> Found by: Coverity Prevent
Notes:
svn path=/stable/7/; revision=181486
|
| |
|
|
|
|
|
|
|
|
| |
stable/7/lib/libarchive was already almost identical to
head/lib/libarchive@177777. This matches it up exactly
(except that I declined to resurrect the .cvsignore file)
and records that alignment in svn:mergeinfo.
Notes:
svn path=/stable/7/; revision=181483
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=179171
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=179170
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=179169
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=179168
|
| |
|
|
|
|
|
|
| |
apart into separate MFCs. These have all been in -CURRENT for
quite some time.
Notes:
svn path=/stable/7/; revision=179167
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=179165
|
| |
|
|
|
|
|
|
| |
reduces some races). But I need to fix a typo in the one use
of fstat() first. <sigh>
Notes:
svn path=/stable/7/; revision=178934
|
| |
|
|
|
|
|
|
| |
Most are write-specific values that are leftovers from when read and
write used a shared structure.
Notes:
svn path=/stable/7/; revision=178908
|
| |
|
|
|
|
|
|
| |
rid of it. We also don't need to set the block size here, since
we don't use it.
Notes:
svn path=/stable/7/; revision=178907
|
| |
|
|
|
|
|
|
|
|
|
|
| |
of the archive structure, not the write-specific portion.
(This is a bungle from back when the generic and write-specific portions
were first separated and the write-specific part accidentally ended
up with copies of some of the generic fields.) In particular,
archive_format() and archive_format_name() now work correctly
on write handles.
Notes:
svn path=/stable/7/; revision=178906
|
| |
|
|
|
|
|
|
| |
block size. The default setting here is arbitrary and shouldn't be
published. Someday, we should be smarter about the default here.
Notes:
svn path=/stable/7/; revision=178905
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=178903
|
| |
|
|
|
|
|
|
| |
tm_gmtoff and can't reset the timezone to force mktime to use UTC,
just give up and use unadorned mktime().
Notes:
svn path=/stable/7/; revision=178902
|
| |
|
|
|
|
|
|
| |
has S_IXUSR, S_IXGRP, S_IXOTH defines, but the values never change,
so just hardcode the constants.
Notes:
svn path=/stable/7/; revision=178901
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=178899
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=177222
|
| |
|
|
|
|
|
|
| |
This is mostly just to catch 7-STABLE up with -CURRENT
before the next big round of changes.
Notes:
svn path=/stable/7/; revision=177079
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Formats are now only bid once per file, not once per entry
(Affects archive_read.c, most format readers, internals manpage)
* Correct tar/cpio history in libarchive_formats manpage
* Avoid unnecessary copies in {write,read}_compression_none
(significant performance boost for uncompressed archives!)
* Protect against zero-length writes in gzip/bzip2 compressors
* Tar reader: improve hardlink length heuristics, GNU tar --posix
--sparse support, related fixes to SCHILY.realsize handling
* Cpio reader: recover from sync errors
* Cpio writer: pad symlinks properly in newc format
* Ar writer: close out empty archive correctly
* Zip reader: ignore PK00 header, code cleanups from des@
* Iso9660 reader: support device node entries
* archive_write_disk: support hardlinks with bodies, enforce
maximum file size
* Reconnect progress callback from archive_read_extract()
* New: archive_entry_strmode()
* New: mtree reader
* New: "linkresolver" makes it easier to do hardlink resolution
* UUencode test reference files (be nice to CVS)
* New test: exercise very large entries (2G up to 1T) in tar archives
* New test: Detailed verification of cpio odc and newc formats
* New test: Various strategies for restoring multiple links to a file
* New tests: Various compatibility checks against gzip, zip, old tar, etc.
* New test: cpio recovery from damaged archives
* New test: mtree reading
* Improved statistics reporting from test harness
* Plus minor portability improvements
Notes:
svn path=/stable/7/; revision=176158
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=176125
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=175590
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=175424
|
| |
|
|
|
|
|
|
|
| |
at the beginning shouldn't be interpreted to mean an empty body.
Approved by: re (Ken Smith)
Notes:
svn path=/stable/7/; revision=174439
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of the full request size. This avoids a 32-bit overflow
problem skipping an exact multiple of 4GB and is faster
anyway because it allows the underlying I/O framework
to minimize copying.
In particular, this fixes bsdtar failing to properly skip
entries in uncompressed tar archives that are an exact
multiple of 4GB.
Approved by: re (Ken Smith)
Notes:
svn path=/stable/7/; revision=173277
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
to store size. In particular, the pax 'size' attribute is required
for any file over 8G.
This seems to fix tar -cf - | tar -xf - when there are files
over 8G in the heirarchy being copied.
Approved by: re (Ken Smith)
Notes:
svn path=/stable/7/; revision=173131
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
MFC: archive_write_set_format_cpio_newc.c 1.2
Non-regular files should have zero-length bodies. libarchive
flags this to clients by updating the entry description when
it writes the header.
Approved by: re (Ken Smith)
Notes:
svn path=/stable/7/; revision=172859
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
return EOF immediately on any attempts to read their data.
(Previously, it would return a zero-length block, then EOF,
which elicited bogus warnings from bsdtar.)
Also, correct the EOF return to correctly identify EOF
as part of an empty block at the correct offset.
Approved by: re (Ken Smith)
Notes:
svn path=/stable/7/; revision=172736
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
number of bytes written, even when used to write files to
disk. Extend the test suite to verify the correct return
values for archive_write_data() and archive_write_data_block().
Thanks to: Bruce Mah, for stepping in promptly to back out the
earlier broken version of this fix
Thanks to: Colin Percival, for pointing out the correct fix
MFC after: 5 days
Approved by: re (ksmith)
Pointy hat: \me
Notes:
svn path=/head/; revision=172267
|