summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2006-08-29 04:59:25 +0000
committerkientzle <kientzle@FreeBSD.org>2006-08-29 04:59:25 +0000
commit0cfc107043b8605fed565737e98b6796ceb65afa (patch)
tree4f54249dca9174c2ab4b5dfbea4566cebe9b80be /lib
parentecf44c474e85fa691ee093eb4bb654f865a04fed (diff)
downloadFreeBSD-src-0cfc107043b8605fed565737e98b6796ceb65afa.zip
FreeBSD-src-0cfc107043b8605fed565737e98b6796ceb65afa.tar.gz
When skipping data, track the position in the bytestream correctly.
Without this, tar -r breaks badly; new entries overwrite the middle of the archive instead of being added at the end. Thanks to: Chris Spiegel
Diffstat (limited to 'lib')
-rw-r--r--lib/libarchive/archive_read_support_compression_none.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/libarchive/archive_read_support_compression_none.c b/lib/libarchive/archive_read_support_compression_none.c
index 229f7bf..0ec68df 100644
--- a/lib/libarchive/archive_read_support_compression_none.c
+++ b/lib/libarchive/archive_read_support_compression_none.c
@@ -265,7 +265,7 @@ archive_decompressor_none_skip(struct archive *a, size_t request)
struct archive_decompress_none *state;
ssize_t bytes_skipped, total_bytes_skipped = 0;
size_t min;
-
+
state = a->compression_data;
if (state->fatal)
return (-1);
@@ -301,6 +301,7 @@ archive_decompressor_none_skip(struct archive *a, size_t request)
return (bytes_skipped);
}
total_bytes_skipped += bytes_skipped;
+ a->file_position += bytes_skipped;
request -= bytes_skipped;
state->client_next = state->client_buff;
a->raw_position += bytes_skipped;
OpenPOWER on IntegriCloud