lz4/zstd: Count bits in bidder, not bytes

All other filters count bits as bidding result. Do so here as well.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
This commit is contained in:
Tobias Stoeckmann committed 2026-08-07 22:40:33 +02:00
1 parent 978a9184ec
commit f815fc44e6
2 files changed
+4 -2

No files matched your search

+1 -1
View File
@@ -180,6 +180,7 @@ lz4_reader_bid(struct archive_read_filter_bidder *b,
uint32_t frame_data_size;
/* Skip over the magic number */
bits_checked += 28;
offset_in_buffer += 4;
/* Ensure that we can read another 4 bytes. */
@@ -224,7 +225,6 @@ lz4_reader_bid(struct archive_read_filter_bidder *b,
* follows, or this isn't LZ4 data.
*/
bits_checked = offset_in_buffer;
buffer = buffer + offset_in_buffer;
if (magic_number == LZ4_MAGICNUMBER) {
@@ -105,6 +105,7 @@ zstd_bidder_bid(struct archive_read_filter_bidder *b,
{
const unsigned char *buffer;
ssize_t avail;
int bits_checked = 0;
/*
* Zstandard skippable frames contain a 4 byte magic number followed
* by a 4 byte frame data size, then that number of bytes of data.
@@ -143,6 +144,7 @@ zstd_bidder_bid(struct archive_read_filter_bidder *b,
uint32_t frame_data_size;
/* Skip over the magic number */
bits_checked += 28;
offset_in_buffer += 4;
/* Ensure that we can read another 4 bytes. */
@@ -187,7 +189,7 @@ zstd_bidder_bid(struct archive_read_filter_bidder *b,
*/
if (magic_number == zstd_magic)
return (offset_in_buffer + 4);
return (bits_checked + 32);
return (0);
}