From 7acde348164605760f1762a89b7ee452e3514ed0 Mon Sep 17 00:00:00 2001 From: Klaus Post Date: Tue, 28 Nov 2023 09:27:39 +0100 Subject: [PATCH] gzhttp: Clamp compression level 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 }