From 256c71ad4eee22a7dac2f13df1e20d85717cbdf6 Mon Sep 17 00:00:00 2001 From: Martin Matuska Date: Tue, 7 May 2019 15:10:13 +0200 Subject: [PATCH] Fix incompatibility introduced by merging PR #1192 Makes test_archive_write_set_format_filter_by_ext_tar_gz pass on OmniOS. --- libarchive/archive_read_support_filter_gzip.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libarchive/archive_read_support_filter_gzip.c b/libarchive/archive_read_support_filter_gzip.c index a4443fc72..458b6f729 100644 --- a/libarchive/archive_read_support_filter_gzip.c +++ b/libarchive/archive_read_support_filter_gzip.c @@ -409,7 +409,7 @@ gzip_filter_read(struct archive_read_filter *self, const void **p) { struct private_data *state; size_t decompressed; - ssize_t avail_in; + ssize_t avail_in, max_in; int ret; state = (struct private_data *)self->data; @@ -443,8 +443,12 @@ gzip_filter_read(struct archive_read_filter *self, const void **p) "truncated gzip input"); return (ARCHIVE_FATAL); } - if (avail_in > (ssize_t)UINT_MAX) - avail_in = UINT_MAX; + if (UINT_MAX >= SSIZE_MAX) + max_in = SSIZE_MAX; + else + max_in = UINT_MAX; + if (avail_in > max_in) + avail_in = max_in; state->stream.avail_in = (uInt)avail_in; /* Decompress and consume some of that data. */ -- 2.47.2