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;
|
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,
|
uint8_t *handshake_info,
|
||||||
size_t handshake_info_len);
|
size_t handshake_info_len);
|
||||||
|
|
||||||
|
/* Util API. */
|
||||||
|
void hs_cell_introduce1_data_clear(hs_cell_introduce1_data_t *data);
|
||||||
|
|
||||||
#endif /* TOR_HS_CELL_H */
|
#endif /* TOR_HS_CELL_H */
|
||||||
|
|
||||||
|
@ -1079,11 +1079,7 @@ hs_circ_send_introduce1(origin_circuit_t *intro_circ,
|
|||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
done:
|
done:
|
||||||
/* Object in this list have been moved to the cell object when building it
|
hs_cell_introduce1_data_clear(&intro1_data);
|
||||||
* 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));
|
|
||||||
memwipe(payload, 0, sizeof(payload));
|
memwipe(payload, 0, sizeof(payload));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user