diff --git a/Userland/Utilities/gunzip.cpp b/Userland/Utilities/gunzip.cpp index 120cdf8cb8..217550834a 100644 --- a/Userland/Utilities/gunzip.cpp +++ b/Userland/Utilities/gunzip.cpp @@ -11,7 +11,7 @@ #include #include -static ErrorOr decompress_file(NonnullOwnPtr input_stream, Stream& output_stream) +static ErrorOr decompress_file(NonnullOwnPtr input_stream, Stream& output_stream) { auto gzip_stream = Compress::GzipDecompressor { move(input_stream) }; @@ -51,10 +51,12 @@ ErrorOr serenity_main(Main::Arguments args) output_filename = filename; } - auto input_stream_result = TRY(Core::File::open(input_filename, Core::File::OpenMode::Read)); + auto input_file = TRY(Core::File::open(input_filename, Core::File::OpenMode::Read)); + auto buffered_input_file = TRY(Core::BufferedFile::create(move(input_file))); + auto output_stream = write_to_stdout ? TRY(Core::File::standard_output()) : TRY(Core::File::open(output_filename, Core::File::OpenMode::Write)); - TRY(decompress_file(move(input_stream_result), *output_stream)); + TRY(decompress_file(move(buffered_input_file), *output_stream)); if (!keep_input_files) TRY(Core::System::unlink(input_filename));