mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
Fix a logic error in 98aee84
. Found by boboper
This commit is contained in:
parent
2849a95691
commit
0ac9a3df6c
@ -1569,6 +1569,7 @@ networkstatus_set_current_consensus(const char *consensus,
|
||||
const digests_t *current_digests = NULL;
|
||||
consensus_waiting_for_certs_t *waiting = NULL;
|
||||
time_t current_valid_after = 0;
|
||||
int free_consensus = 1; /* Free 'c' at the end of the function */
|
||||
|
||||
if (flav < 0) {
|
||||
/* XXXX we don't handle unrecognized flavors yet. */
|
||||
@ -1661,7 +1662,7 @@ networkstatus_set_current_consensus(const char *consensus,
|
||||
networkstatus_vote_free(waiting->consensus);
|
||||
tor_free(waiting->body);
|
||||
waiting->consensus = c;
|
||||
c = NULL; /* Prevent free. */
|
||||
free_consensus = 0;
|
||||
waiting->body = tor_strdup(consensus);
|
||||
waiting->set_at = now;
|
||||
waiting->dl_failed = 0;
|
||||
@ -1737,7 +1738,7 @@ networkstatus_set_current_consensus(const char *consensus,
|
||||
|
||||
if (flav == USABLE_CONSENSUS_FLAVOR) {
|
||||
current_consensus = c;
|
||||
c = NULL; /* Prevent free. */
|
||||
free_consensus = 0; /* Prevent free. */
|
||||
|
||||
/* XXXXNM Microdescs: needs a non-ns variant. */
|
||||
update_consensus_networkstatus_fetch_time(now);
|
||||
@ -1780,7 +1781,8 @@ networkstatus_set_current_consensus(const char *consensus,
|
||||
|
||||
result = 0;
|
||||
done:
|
||||
networkstatus_vote_free(c);
|
||||
if (free_consensus)
|
||||
networkstatus_vote_free(c);
|
||||
tor_free(consensus_fname);
|
||||
tor_free(unverified_fname);
|
||||
return result;
|
||||
|
Loading…
Reference in New Issue
Block a user