mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Merge branch 'tor-gitlab/mr/676'
This commit is contained in:
commit
c420667a2e
4
changes/ticket40437
Normal file
4
changes/ticket40437
Normal 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.
|
@ -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));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user