mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-09-21 05:26:20 +02: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;
|
int retval;
|
||||||
char base64_blinded_pubkey[ED25519_BASE64_LEN + 1];
|
char base64_blinded_pubkey[ED25519_BASE64_LEN + 1];
|
||||||
uint64_t current_time_period = hs_get_time_period_num(0);
|
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;
|
ed25519_public_key_t blinded_pubkey;
|
||||||
routerstatus_t *hsdir_rs = NULL;
|
routerstatus_t *hsdir_rs = NULL;
|
||||||
|
|
||||||
tor_assert(onion_identity_pk);
|
tor_assert(onion_identity_pk);
|
||||||
|
|
||||||
responsible_hsdirs = smartlist_new();
|
|
||||||
|
|
||||||
/* Get blinded pubkey of hidden service */
|
/* Get blinded pubkey of hidden service */
|
||||||
hs_build_blinded_pubkey(onion_identity_pk, NULL, 0,
|
hs_build_blinded_pubkey(onion_identity_pk, NULL, 0,
|
||||||
current_time_period, &blinded_pubkey);
|
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 */
|
/* Get responsible hsdirs of service for this time period */
|
||||||
|
responsible_hsdirs = smartlist_new();
|
||||||
|
|
||||||
hs_get_responsible_hsdirs(&blinded_pubkey, current_time_period,
|
hs_get_responsible_hsdirs(&blinded_pubkey, current_time_period,
|
||||||
0, 1, responsible_hsdirs);
|
0, 1, responsible_hsdirs);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user