Don't leak a waiting-for-certs consensus when accepting it.
I believe this was introduced in 6bc071f765
, which makes
this a fix on 0.2.0.10-alpha. But my code archeology has not extended
to actually testing that theory.
This commit is contained in:
parent
9630fb917f
commit
cd2b508f4e
|
@ -0,0 +1,6 @@
|
||||||
|
o Major bugfixes (memory leak):
|
||||||
|
- Avoid a memory leak where we would leak a consensus body when we find
|
||||||
|
that a consensus which we couldn't previously verify due to missing
|
||||||
|
certificates is now verifiable. Fixes bug 8719; bugfix on
|
||||||
|
0.2.0.10-alpha.
|
||||||
|
|
|
@ -1893,11 +1893,12 @@ networkstatus_note_certs_arrived(void)
|
||||||
if (!waiting->consensus)
|
if (!waiting->consensus)
|
||||||
continue;
|
continue;
|
||||||
if (networkstatus_check_consensus_signature(waiting->consensus, 0)>=0) {
|
if (networkstatus_check_consensus_signature(waiting->consensus, 0)>=0) {
|
||||||
|
char *waiting_body = waiting->body;
|
||||||
if (!networkstatus_set_current_consensus(
|
if (!networkstatus_set_current_consensus(
|
||||||
waiting->body,
|
waiting_body,
|
||||||
networkstatus_get_flavor_name(i),
|
networkstatus_get_flavor_name(i),
|
||||||
NSSET_WAS_WAITING_FOR_CERTS)) {
|
NSSET_WAS_WAITING_FOR_CERTS)) {
|
||||||
tor_free(waiting->body);
|
tor_free(waiting_body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue