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>
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));
+}
+
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 */
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;
}