mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Hiding crypt_path_t: Move the free func in crypt_path.c.
Again everything is moved, apart from a free line using ->private.
This commit is contained in:
parent
5f96b7abcc
commit
4bd0c4852a
@ -133,7 +133,6 @@ static smartlist_t *circuits_pending_other_guards = NULL;
|
||||
* circuit_mark_for_close and which are waiting for circuit_about_to_free. */
|
||||
static smartlist_t *circuits_pending_close = NULL;
|
||||
|
||||
static void circuit_free_cpath_node(crypt_path_t *victim);
|
||||
static void cpath_ref_decref(crypt_path_reference_t *cpath_ref);
|
||||
static void circuit_about_to_free_atexit(circuit_t *circ);
|
||||
static void circuit_about_to_free(circuit_t *circ);
|
||||
@ -1333,22 +1332,6 @@ circuit_free_all(void)
|
||||
HT_CLEAR(chan_circid_map, &chan_circid_map);
|
||||
}
|
||||
|
||||
/** Deallocate space associated with the cpath node <b>victim</b>. */
|
||||
static void
|
||||
circuit_free_cpath_node(crypt_path_t *victim)
|
||||
{
|
||||
if (!victim)
|
||||
return;
|
||||
|
||||
relay_crypto_clear(&victim->crypto);
|
||||
onion_handshake_state_release(&victim->handshake_state);
|
||||
crypto_dh_free(victim->rend_dh_handshake_state);
|
||||
extend_info_free(victim->extend_info);
|
||||
|
||||
memwipe(victim, 0xBB, sizeof(crypt_path_t)); /* poison memory */
|
||||
tor_free(victim);
|
||||
}
|
||||
|
||||
/** Release a crypt_path_reference_t*, which may be NULL. */
|
||||
static void
|
||||
cpath_ref_decref(crypt_path_reference_t *cpath_ref)
|
||||
|
@ -16,9 +16,13 @@
|
||||
#include "core/or/crypt_path.h"
|
||||
|
||||
#include "core/crypto/relay_crypto.h"
|
||||
#include "core/crypto/onion_crypto.h"
|
||||
#include "core/or/circuitbuild.h"
|
||||
#include "core/or/circuitlist.h"
|
||||
|
||||
#include "lib/crypt_ops/crypto_dh.h"
|
||||
#include "lib/crypt_ops/crypto_util.h"
|
||||
|
||||
#include "core/or/crypt_path_st.h"
|
||||
#include "core/or/cell_st.h"
|
||||
|
||||
@ -143,6 +147,21 @@ circuit_init_cpath_crypto(crypt_path_t *cpath,
|
||||
}
|
||||
|
||||
|
||||
/** Deallocate space associated with the cpath node <b>victim</b>. */
|
||||
void
|
||||
circuit_free_cpath_node(crypt_path_t *victim)
|
||||
{
|
||||
if (!victim)
|
||||
return;
|
||||
|
||||
relay_crypto_clear(&victim->private->crypto);
|
||||
onion_handshake_state_release(&victim->handshake_state);
|
||||
crypto_dh_free(victim->rend_dh_handshake_state);
|
||||
extend_info_free(victim->extend_info);
|
||||
|
||||
memwipe(victim, 0xBB, sizeof(crypt_path_t)); /* poison memory */
|
||||
tor_free(victim);
|
||||
}
|
||||
|
||||
/********************** cpath crypto API *******************************/
|
||||
|
||||
|
@ -16,6 +16,9 @@ int circuit_init_cpath_crypto(crypt_path_t *cpath,
|
||||
const char *key_data, size_t key_data_len,
|
||||
int reverse, int is_hs_v3);
|
||||
|
||||
void
|
||||
circuit_free_cpath_node(crypt_path_t *victim);
|
||||
|
||||
/* rename */
|
||||
void onion_append_to_cpath(crypt_path_t **head_ptr, crypt_path_t *new_hop);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user