From c4e922d5144c8dda7fa28102b03d6e813e20ccef Mon Sep 17 00:00:00 2001 From: Klaus Post Date: Tue, 28 Nov 2023 01:11:08 -0800 Subject: [PATCH] gzhttp: Clamp compression level (#890) Clamp compression levels to valid values. --- gzhttp/writer/gzkp/gzkp.go | 6 ++++++ gzhttp/writer/gzstd/stdlib.go | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/gzhttp/writer/gzkp/gzkp.go b/gzhttp/writer/gzkp/gzkp.go index e31c46c4cf..1930af12e7 100644 --- a/gzhttp/writer/gzkp/gzkp.go +++ b/gzhttp/writer/gzkp/gzkp.go @@ -24,6 +24,12 @@ func init() { // poolIndex maps a compression level to its index into gzipWriterPools. It // assumes that level is a valid gzip compression level. func poolIndex(level int) int { + if level > gzip.BestCompression { + level = gzip.BestCompression + } + if level < gzip.StatelessCompression { + level = gzip.BestSpeed + } return level - gzip.StatelessCompression } diff --git a/gzhttp/writer/gzstd/stdlib.go b/gzhttp/writer/gzstd/stdlib.go index 76a6c6bf2b..70a93e62fe 100644 --- a/gzhttp/writer/gzstd/stdlib.go +++ b/gzhttp/writer/gzstd/stdlib.go @@ -24,6 +24,12 @@ func init() { // poolIndex maps a compression level to its index into gzipWriterPools. It // assumes that level is a valid gzip compression level. func poolIndex(level int) int { + if level > gzip.BestCompression { + level = gzip.BestCompression + } + if level < gzip.HuffmanOnly { + level = gzip.BestSpeed + } return level - gzip.HuffmanOnly }