aboutsummaryrefslogtreecommitdiff
path: root/src/Package/Fetch.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Package/Fetch.zig')
-rw-r--r--src/Package/Fetch.zig7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/Package/Fetch.zig b/src/Package/Fetch.zig
index fb9d7c823c..ed3c6b099f 100644
--- a/src/Package/Fetch.zig
+++ b/src/Package/Fetch.zig
@@ -1099,7 +1099,12 @@ fn unpackResource(
switch (file_type) {
.tar => try unpackTarball(f, tmp_directory.handle, resource.reader()),
- .@"tar.gz" => try unpackTarballCompressed(f, tmp_directory.handle, resource, std.compress.gzip),
+ .@"tar.gz" => {
+ const reader = resource.reader();
+ var br = std.io.bufferedReaderSize(std.crypto.tls.max_ciphertext_record_len, reader);
+ var dcp = std.compress.gzip.decompressor(br.reader());
+ try unpackTarball(f, tmp_directory.handle, dcp.reader());
+ },
.@"tar.xz" => try unpackTarballCompressed(f, tmp_directory.handle, resource, std.compress.xz),
.@"tar.zst" => try unpackTarballCompressed(f, tmp_directory.handle, resource, ZstdWrapper),
.git_pack => unpackGitPack(f, tmp_directory.handle, resource) catch |err| switch (err) {