mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-23 20:03:31 +01:00
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 <dgoulet@torproject.org>
This commit is contained in:
parent
78cb761612
commit
fd3f9e8580
6
changes/ticket40739
Normal file
6
changes/ticket40739
Normal file
@ -0,0 +1,6 @@
|
||||
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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user