mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 12:23:32 +01:00
prop224: Add a function to clear INTRO data
New function named hs_cell_introduce1_data_clear() is introduced to clear off an hs_cell_introduce1_data_t object. Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
parent
cb462b95b7
commit
7c543412fc
@ -931,3 +931,18 @@ hs_cell_parse_rendezvous2(const uint8_t *payload, size_t payload_len,
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Clear the given INTRODUCE1 data structure data. */
|
||||
void
|
||||
hs_cell_introduce1_data_clear(hs_cell_introduce1_data_t *data)
|
||||
{
|
||||
if (data == NULL) {
|
||||
return;
|
||||
}
|
||||
/* Object in this list have been moved to the cell object when building it
|
||||
* so they've been freed earlier. We do that in order to avoid duplicating
|
||||
* them leading to more memory and CPU time being used for nothing. */
|
||||
smartlist_free(data->link_specifiers);
|
||||
/* The data object has no ownership of any members. */
|
||||
memwipe(data, 0, sizeof(hs_cell_introduce1_data_t));
|
||||
}
|
||||
|
||||
|
@ -115,5 +115,8 @@ int hs_cell_parse_rendezvous2(const uint8_t *payload, size_t payload_len,
|
||||
uint8_t *handshake_info,
|
||||
size_t handshake_info_len);
|
||||
|
||||
/* Util API. */
|
||||
void hs_cell_introduce1_data_clear(hs_cell_introduce1_data_t *data);
|
||||
|
||||
#endif /* TOR_HS_CELL_H */
|
||||
|
||||
|
@ -1079,11 +1079,7 @@ hs_circ_send_introduce1(origin_circuit_t *intro_circ,
|
||||
goto done;
|
||||
|
||||
done:
|
||||
/* Object in this list have been moved to the cell object when building it
|
||||
* so they've been freed earlier. We do that in order to avoid duplicating
|
||||
* them leading to more memory and CPU time being used for nothing. */
|
||||
smartlist_free(intro1_data.link_specifiers);
|
||||
memwipe(&intro1_data, 0, sizeof(intro1_data));
|
||||
hs_cell_introduce1_data_clear(&intro1_data);
|
||||
memwipe(payload, 0, sizeof(payload));
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user