mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 12:23:32 +01:00
Fix memory leak in pick_hsdir_v3().
This patch fixes a memory leak in pick_hsdir_v3() where we might return early, but forgot to free the responsible_hsdirs variable. We solve this by not allocating storage for responsible_hsdirs until it's actually needed. See: Coverity CID 1437449
This commit is contained in:
parent
6107a2127b
commit
ce5d055ed7
@ -365,14 +365,12 @@ pick_hsdir_v3(const ed25519_public_key_t *onion_identity_pk)
|
||||
int retval;
|
||||
char base64_blinded_pubkey[ED25519_BASE64_LEN + 1];
|
||||
uint64_t current_time_period = hs_get_time_period_num(0);
|
||||
smartlist_t *responsible_hsdirs;
|
||||
smartlist_t *responsible_hsdirs = NULL;
|
||||
ed25519_public_key_t blinded_pubkey;
|
||||
routerstatus_t *hsdir_rs = NULL;
|
||||
|
||||
tor_assert(onion_identity_pk);
|
||||
|
||||
responsible_hsdirs = smartlist_new();
|
||||
|
||||
/* Get blinded pubkey of hidden service */
|
||||
hs_build_blinded_pubkey(onion_identity_pk, NULL, 0,
|
||||
current_time_period, &blinded_pubkey);
|
||||
@ -383,6 +381,8 @@ pick_hsdir_v3(const ed25519_public_key_t *onion_identity_pk)
|
||||
}
|
||||
|
||||
/* Get responsible hsdirs of service for this time period */
|
||||
responsible_hsdirs = smartlist_new();
|
||||
|
||||
hs_get_responsible_hsdirs(&blinded_pubkey, current_time_period,
|
||||
0, 1, responsible_hsdirs);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user