1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-11 04:56:01 +01:00

libutil: allow decompression with none/empty method

The S3 store relies on the ability to be able to decompress things with
an empty method, because it just passes the value of the Content-Encoding
directly to decompress.

If the file is not compressed, then this will cause the compression
routine to get confused.

This caused NixOS/nixpkgs#120120.
This commit is contained in:
Luke Granger-Brown 2021-04-22 02:33:59 +00:00
parent 8d651a1f68
commit 97dde3cdd9
2 changed files with 21 additions and 1 deletions

View file

@ -186,7 +186,9 @@ struct BrotliDecompressionSink : ChunkedCompressionSink
ref<std::string> decompress(const std::string & method, const std::string & in)
{
if (method == "br") {
if (method == "none" || method == "")
return make_ref<std::string>(in);
else if (method == "br") {
StringSink ssink;
auto sink = makeDecompressionSink(method, ssink);
(*sink)(in);