]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Free pending_entry_connections on shutdown.
authorNick Mathewson <nickm@torproject.org>
Tue, 17 Nov 2015 14:06:47 +0000 (09:06 -0500)
committerNick Mathewson <nickm@torproject.org>
Tue, 17 Nov 2015 14:06:47 +0000 (09:06 -0500)
src/or/connection_edge.c
src/or/connection_edge.h
src/or/main.c

index 20a27dc90c7cc3fb0035d11d21a508d2b2d83e0f..67e594a6a9dd4c5868d59c0586114ec9ada51be1 100644 (file)
@@ -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;
+}
index 86f3fe990cfcd5bfda3c165fd37a87cb40e93fbf..521e759aed39eba729d8d003d1d14667abbb3f6d 100644 (file)
@@ -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
index 0fe818d74ffdb8d6f968ae25ce9b9898ac57631a..b5c1b8ba69203e09f7b3f8012d797162e85783a6 100644 (file)
@@ -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();