]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Fix incompatibility introduced by merging PR #1192
authorMartin Matuska <martin@matuska.org>
Tue, 7 May 2019 13:10:13 +0000 (15:10 +0200)
committerMartin Matuska <martin@matuska.org>
Tue, 7 May 2019 14:09:27 +0000 (16:09 +0200)
Makes test_archive_write_set_format_filter_by_ext_tar_gz pass on OmniOS.

libarchive/archive_read_support_filter_gzip.c

index a4443fc727263e47cfe11a035119ab7e326db662..458b6f729164b7b35166796916099c549232cb3a 100644 (file)
@@ -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. */