Fix body_size_limit negative handling (#838)
authorMarcelo Magallon <marcelo.magallon@grafana.com>
Tue, 19 Oct 2021 22:37:07 +0000 (16:37 -0600)
committerGitHub <noreply@github.com>
Tue, 19 Oct 2021 22:37:07 +0000 (16:37 -0600)
commit45d2cd6cbb2ef556d53a64d10bbceb06a2150b85
tree9ac502ec61dbc6521dfd18c30af55200c613fef3
parente86980961f8e463288e31cac03255701cb1a11d1
Fix body_size_limit negative handling (#838)

When body_size_limit is 0 (either explicitly or implicitly because it
wasn't specified) or less, we are setting it to math.MaxInt64. It turns
out that the implementation in http.MaxBytesReader tries to add 1 to the
specified value, and it wraps around. After that, it tries to use the
result to index an slice, causing it to panic.

Work around this by setting the limit to math.MaxInt64 - 1.

Also, if body_size_limit is exactly 0, leave it like that. That causes
the code to avoid setting up the limiter, saving some extra processing.

Signed-off-by: Marcelo E. Magallon <marcelo.magallon@grafana.com>
config/config.go