Commit 58edf926 authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

Free pending_entry_connections on shutdown.

parent 84b3350c
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -509,7 +509,6 @@ connection_edge_finished_connecting(edge_connection_t *edge_conn)
 * (Right now, we check in several places to make sure that this list is
 * correct.  When it's incorrect, we'll fix it, and log a BUG message.)
 */
/* XXXXX Free this list on exit. */
static smartlist_t *pending_entry_connections = NULL;

static int untried_pending_connections = 0;
@@ -3591,3 +3590,11 @@ circuit_clear_isolation(origin_circuit_t *circ)
  circ->socks_username_len = circ->socks_password_len = 0;
}

/** Free all storage held in module-scoped variables for connection_edge.c */
void
connection_edge_free_all(void)
{
  untried_pending_connections = 0;
  smartlist_free(pending_entry_connections);
  pending_entry_connections = NULL;
}
+2 −0
Original line number Diff line number Diff line
@@ -102,6 +102,8 @@ int connection_edge_update_circuit_isolation(const entry_connection_t *conn,
void circuit_clear_isolation(origin_circuit_t *circ);
streamid_t get_unique_stream_id_by_circ(origin_circuit_t *circ);

void connection_edge_free_all(void);

/** @name Begin-cell flags
 *
 * These flags are used in RELAY_BEGIN cells to change the default behavior
+1 −0
Original line number Diff line number Diff line
@@ -3084,6 +3084,7 @@ tor_free_all(int postfork)
  channel_tls_free_all();
  channel_free_all();
  connection_free_all();
  connection_edge_free_all();
  scheduler_free_all();
  memarea_clear_freelist();
  nodelist_free_all();