tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit fc3d4e4c2fb527954780ba958659e70f35fffe6c
parent 4a7379b80a3d0f61d258b26f82d894da9b8cd0f5
Author: Nick Mathewson <nickm@torproject.org>
Date:   Thu, 27 May 2021 10:49:37 -0400

Upgrade and rate-limit compression failure message.

Without this message getting logged at 'WARN', it's hard to
contextualize the messages we get about compression bombs, so this
message should fix #40175.

I'm rate-limiting this, however, since it _could_ get spammy if
somebody on the network starts acting up.  (Right now it should be
very quiet; I've asked Sebastian to check it, and he says that he
doesn't hit this message in practice.)

Closes #40175.

Diffstat:
Msrc/feature/dirclient/dirclient.c | 4+++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/feature/dirclient/dirclient.c b/src/feature/dirclient/dirclient.c @@ -1944,7 +1944,9 @@ dir_client_decompress_response_body(char **bodyp, size_t *bodylenp, /* If we're pretty sure that we have a compressed directory, and * we didn't manage to uncompress it, then warn and bail. */ if (!plausible && !new_body) { - log_fn(LOG_PROTOCOL_WARN, LD_HTTP, + const int LOG_INTERVAL = 3600; + static ratelim_t warning_limit = RATELIM_INIT(LOG_INTERVAL); + log_fn_ratelim(&warning_limit, LOG_WARN, LD_HTTP, "Unable to decompress HTTP body (tried %s%s%s, on %s).", description1, tried_both?" and ":"",