Skip to content
Snippets Groups Projects
Commit fd3f9e85 authored by David Goulet's avatar David Goulet :panda_face:
Browse files

zstd: Check errors right affer compressing/decompressing


Considering a compression bomb before looking for errors led to false negative
log warnings. Instead, it is possible the work failed for whatever reasons
which is not indicative of a compression bomb.

Fixes #40739

Signed-off-by: David Goulet's avatarDavid Goulet <dgoulet@torproject.org>
parent 78cb7616
No related branches found
No related tags found
No related merge requests found
o Minor bugfixes (compression):
- Right after compression/decompression work is done, check for errors.
Before this, we would consider compression bomb before that and then
looking for errors leading to false positive on that log warning. Fixes
bug 40739; bugfix on 0.3.5.1-alpha. Patch by "cypherpunks".
......@@ -368,6 +368,13 @@ tor_zstd_compress_process(tor_zstd_compress_state_t *state,
&output, &input);
}
if (ZSTD_isError(retval)) {
log_warn(LD_GENERAL, "Zstandard %s didn't finish: %s.",
state->compress ? "compression" : "decompression",
ZSTD_getErrorName(retval));
return TOR_COMPRESS_ERROR;
}
state->input_so_far += input.pos;
state->output_so_far += output.pos;
......@@ -383,13 +390,6 @@ tor_zstd_compress_process(tor_zstd_compress_state_t *state,
return TOR_COMPRESS_ERROR;
}
if (ZSTD_isError(retval)) {
log_warn(LD_GENERAL, "Zstandard %s didn't finish: %s.",
state->compress ? "compression" : "decompression",
ZSTD_getErrorName(retval));
return TOR_COMPRESS_ERROR;
}
if (state->compress && !state->have_called_end) {
retval = ZSTD_flushStream(state->u.compress_stream, &output);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment