Merge branch 'tor-gitlab/mr/676'

This commit is contained in:
David Goulet 2023-01-10 11:53:10 -05:00
commit c420667a2e
2 changed files with 16 additions and 0 deletions

4
changes/ticket40437 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (state file):
- Avoid a segfault if the state file doesn't contains TotalBuildTimes along
CircuitBuildAbandonedCount being above 0. Fixes bug 40437; bugfix on
0.3.5.1-alpha.

View File

@ -1018,6 +1018,18 @@ circuit_build_times_parse_state(circuit_build_times_t *cbt,
return 0; return 0;
} }
/* We had a case where someone removed their TotalBuildTimes from the state
* files while having CircuitBuildAbandonedCount above 0 leading to a
* segfault (#40437). Simply bug on it and return an error so at least the
* user will learn that they broke the state file. */
if (BUG(state->TotalBuildTimes <= 0 &&
state->CircuitBuildAbandonedCount > 0)) {
log_warn(LD_GENERAL, "CircuitBuildAbandonedCount count is above 0 but "
"no TotalBuildTimes have been found. Unable to "
"parse broken state file");
return -1;
}
/* build_time_t 0 means uninitialized */ /* build_time_t 0 means uninitialized */
loaded_times = tor_calloc(state->TotalBuildTimes, sizeof(build_time_t)); loaded_times = tor_calloc(state->TotalBuildTimes, sizeof(build_time_t));