authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-08-26 21:07:00-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-08-26 21:07:09-07:00
log68f590d430bee6bc9b3bb4940f739d8b04435c08
tree5b3972db9648cb4c4b3680764400c95b1033291f
parent0339c5793a26cee680d2e42da702038e3574469c

std.compress.xz: fix 32-bit targets


1 files changed, 5 insertions(+), 6 deletions(-)

lib/std/compress/xz/Decompress.zig+5-6
...@@ -259,9 +259,9 @@ fn readBlock(input: *Reader, allocating: *Writer.Allocating) !void {...@@ -259,9 +259,9 @@ fn readBlock(input: *Reader, allocating: *Writer.Allocating) !void {
259259
260 // Block Padding260 // Block Padding
261 const block_counter = header_size + packed_bytes_read;261 const block_counter = header_size + packed_bytes_read;
262 const padding = (4 - (block_counter % 4)) % 4;262 const padding = try input.take(@intCast((4 - (block_counter % 4)) % 4));
263 for (0..padding) |_| {263 for (padding) |byte| {
264 if (try input.takeByte() != 0) return error.CorruptInput;264 if (byte != 0) return error.CorruptInput;
265 }265 }
266}266}
267267
...@@ -279,14 +279,13 @@ fn finish(d: *Decompress) !void {...@@ -279,14 +279,13 @@ fn finish(d: *Decompress) !void {
279 if (record_count != d.block_count)279 if (record_count != d.block_count)
280 return error.CorruptInput;280 return error.CorruptInput;
281281
282 for (0..record_count) |_| {282 for (0..@intCast(record_count)) |_| {
283 // TODO: validate records283 // TODO: validate records
284 _ = try countLeb128(input, u64, &input_counter, &checksum);284 _ = try countLeb128(input, u64, &input_counter, &checksum);
285 _ = try countLeb128(input, u64, &input_counter, &checksum);285 _ = try countLeb128(input, u64, &input_counter, &checksum);
286 }286 }
287287
288 const padding_len = (4 - (input_counter % 4)) % 4;288 const padding = try input.take(@intCast((4 - (input_counter % 4)) % 4));
289 const padding = try input.take(padding_len);
290 for (padding) |byte| {289 for (padding) |byte| {
291 if (byte != 0) return error.CorruptInput;290 if (byte != 0) return error.CorruptInput;
292 }291 }