summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libarchive/archive_read_support_format_tar.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/lib/libarchive/archive_read_support_format_tar.c b/lib/libarchive/archive_read_support_format_tar.c
index 3c24733..8228c1e 100644
--- a/lib/libarchive/archive_read_support_format_tar.c
+++ b/lib/libarchive/archive_read_support_format_tar.c
@@ -524,15 +524,9 @@ archive_read_format_tar_read_data(struct archive_read *a,
(a->compression_read_consume)(a, bytes_read);
return (ARCHIVE_OK);
} else {
- while (tar->entry_padding > 0) {
- bytes_read = (a->compression_read_ahead)(a, buff, 1);
- if (bytes_read <= 0)
- return (ARCHIVE_FATAL);
- if (bytes_read > tar->entry_padding)
- bytes_read = tar->entry_padding;
- (a->compression_read_consume)(a, bytes_read);
- tar->entry_padding -= bytes_read;
- }
+ if ((a->compression_skip)(a, tar->entry_padding) < 0)
+ return (ARCHIVE_FATAL);
+ tar->entry_padding = 0;
*buff = NULL;
*size = 0;
*offset = tar->entry_offset;
OpenPOWER on IntegriCloud