Merge branch 'maint-0.4.1'

This commit is contained in:
David Goulet 2019-07-25 10:27:41 -04:00
commit 044bb019b6
3 changed files with 17 additions and 5 deletions

4
changes/bug31024 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (circuitpadding):
- Add two NULL checks in unreachable places to silence Coverity (CID 144729
and 1447291) and better future proof ourselves. Fixes bug 31024; bugfix
on 0.4.1.1-alpha.

3
changes/bug31027 Normal file
View File

@ -0,0 +1,3 @@
o Code simplification and refactoring:
- Remove some dead code from circpad_machine_remove_token() to fix some
Coverity warnings (CID 1447298). Fixes bug 31027; bugfix on 0.4.1.1-alpha.

View File

@ -450,6 +450,9 @@ circpad_is_token_removal_supported(circpad_machine_runtime_t *mi)
/* Machines that do want token removal are less sensitive to performance.
* Let's spend some time to check that our state is consistent and sane */
const circpad_state_t *state = circpad_machine_current_state(mi);
if (BUG(!state)) {
return 1;
}
tor_assert_nonfatal(state->token_removal != CIRCPAD_TOKEN_REMOVAL_NONE);
tor_assert_nonfatal(state->histogram_len == mi->histogram_len);
tor_assert_nonfatal(mi->histogram_len != 0);
@ -1091,8 +1094,11 @@ circpad_machine_remove_token(circpad_machine_runtime_t *mi)
state = circpad_machine_current_state(mi);
/* If we are not in a padding state (like start or end), we're done */
if (!state)
return;
/* Don't remove any tokens if we're not doing token removal */
if (!state || state->token_removal == CIRCPAD_TOKEN_REMOVAL_NONE)
if (state->token_removal == CIRCPAD_TOKEN_REMOVAL_NONE)
return;
current_time = monotime_absolute_usec();
@ -1111,10 +1117,6 @@ circpad_machine_remove_token(circpad_machine_runtime_t *mi)
timer_disable(mi->padding_timer);
}
/* If we are not in a padding state (like start or end), we're done */
if (!state)
return;
/* Perform the specified token removal strategy */
switch (state->token_removal) {
case CIRCPAD_TOKEN_REMOVAL_CLOSEST_USEC:
@ -1676,6 +1678,9 @@ circpad_estimate_circ_rtt_on_received(circuit_t *circ,
}
} else {
const circpad_state_t *state = circpad_machine_current_state(mi);
if (BUG(!state)) {
return;
}
/* Since monotime is unpredictably expensive, only update this field
* if rtt estimates are needed. Otherwise, stop the rtt update. */