]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
lz4/zstd: Use correct data types while bidding
authorTobias Stoeckmann <tobias@stoeckmann.org>
Mon, 25 May 2026 18:56:12 +0000 (20:56 +0200)
committerTobias Stoeckmann <tobias@stoeckmann.org>
Mon, 25 May 2026 19:13:10 +0000 (21:13 +0200)
Use size_t where size_t arguments are expected (and cast avail to size_t
because we know at this point that it cannot be negative).

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
libarchive/archive_read_support_filter_lz4.c
libarchive/archive_read_support_filter_zstd.c

index 5b0f04757a2caf849e830922750db623d3b35455..9f07bfcef2d6cff9ba1793e9049c728f4bca48d1 100644 (file)
@@ -145,7 +145,7 @@ lz4_reader_bid(struct archive_read_filter_bidder *self,
        const unsigned char *buffer;
        ssize_t avail;
        int bits_checked = 0;
-       const ssize_t min_lz4_archive_size = 11;
+       const size_t min_lz4_archive_size = 11;
 
        /*
         * LZ4 skippable frames contain a 4 byte magic number followed by
@@ -153,10 +153,10 @@ lz4_reader_bid(struct archive_read_filter_bidder *self,
         * Regular frames contain a 4 byte magic number followed by a 2-14
         * byte frame header, some data, and a 3 byte end marker.
         */
-       const ssize_t min_lz4_frame_size = 8;
+       const size_t min_lz4_frame_size = 8;
 
-       ssize_t offset_in_buffer = 0;
-       const ssize_t max_lookahead = 64 * 1024;
+       size_t offset_in_buffer = 0;
+       const size_t max_lookahead = 64 * 1024;
        uint32_t magic_number;
 
        (void)self; /* UNUSED */
@@ -182,7 +182,7 @@ lz4_reader_bid(struct archive_read_filter_bidder *self,
                offset_in_buffer += 4;
 
                /* Ensure that we can read another 4 bytes. */
-               if (offset_in_buffer + 4 > avail) {
+               if (offset_in_buffer + 4 > (size_t)avail) {
                        buffer = __archive_read_filter_ahead(filter,
                            offset_in_buffer + 4, &avail);
                        if (buffer == NULL)
@@ -202,7 +202,7 @@ lz4_reader_bid(struct archive_read_filter_bidder *self,
                 * if this is LZ4 data.
                 */
                /* TODO: should this be >= ? */
-               if (offset_in_buffer + min_lz4_frame_size > avail) {
+               if (offset_in_buffer + min_lz4_frame_size > (size_t)avail) {
                        if (offset_in_buffer + min_lz4_frame_size >
                            max_lookahead)
                                return (0); 
index 299916e0eafa45316693329c2440b4bc4cc4aed9..f27a1254e13d62c68c68f891cb865a4ade3d0437 100644 (file)
@@ -116,10 +116,10 @@ zstd_bidder_bid(struct archive_read_filter_bidder *self,
         * Regular frames contain a 4 byte magic number followed by a 2-14
         * byte frame header, some data, and a 3 byte end marker.
         */
-       const ssize_t min_zstd_frame_size = 8;
+       const size_t min_zstd_frame_size = 8;
 
-       ssize_t offset_in_buffer = 0;
-       const ssize_t max_lookahead = 64 * 1024;
+       size_t offset_in_buffer = 0;
+       const size_t max_lookahead = 64 * 1024;
        uint32_t magic_number;
 
        /* Zstd regular frame magic number. */
@@ -150,7 +150,7 @@ zstd_bidder_bid(struct archive_read_filter_bidder *self,
                offset_in_buffer += 4;
 
                /* Ensure that we can read another 4 bytes. */
-               if (offset_in_buffer + 4 > avail) {
+               if (offset_in_buffer + 4 > (size_t)avail) {
                        buffer = __archive_read_filter_ahead(filter,
                            offset_in_buffer + 4, &avail);
                        if (buffer == NULL)
@@ -169,7 +169,7 @@ zstd_bidder_bid(struct archive_read_filter_bidder *self,
                 * There should be at least one more frame
                 * if this is zstd data.
                 */
-               if (offset_in_buffer + min_zstd_frame_size > avail) {
+               if (offset_in_buffer + min_zstd_frame_size > (size_t)avail) {
                        if (offset_in_buffer + min_zstd_frame_size >
                            max_lookahead)
                                return (0);