[tor-commits] [tor/master] Write some free_all functions to free the auth. cookies.

nickm at torproject.org nickm at torproject.org
Thu Aug 15 16:16:46 UTC 2013


commit f549e4c36d0658b6255d3b9cf7c56131d4a37a57
Author: George Kadianakis <desnacked at riseup.net>
Date:   Wed Aug 14 17:16:06 2013 +0300

    Write some free_all functions to free the auth. cookies.
    
    We started allocating space for them on the heap in the previous
    commit.
    
    Conflicts:
    	src/or/ext_orport.h
---
 src/or/control.c    |    8 ++++++++
 src/or/control.h    |    1 +
 src/or/ext_orport.c |    8 ++++++++
 src/or/ext_orport.h |    1 +
 src/or/main.c       |    3 +++
 5 files changed, 21 insertions(+)

diff --git a/src/or/control.c b/src/or/control.c
index b6ba127..03b42af 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -4750,3 +4750,11 @@ control_event_clients_seen(const char *controller_str)
     "650 CLIENTS_SEEN %s\r\n", controller_str);
 }
 
+/** Free any leftover allocated memory of the control.c subsystem. */
+void
+control_free_all(void)
+{
+  if (authentication_cookie) /* Free the auth cookie */
+    tor_free(authentication_cookie);
+}
+
diff --git a/src/or/control.h b/src/or/control.h
index 3b2004b..be9476e 100644
--- a/src/or/control.h
+++ b/src/or/control.h
@@ -89,6 +89,7 @@ MOCK_DECL(void, control_event_bootstrap_problem,(const char *warn,
                                                  int reason));
 
 void control_event_clients_seen(const char *controller_str);
+void control_free_all(void);
 
 #ifdef CONTROL_PRIVATE
 /* Used only by control.c and test.c */
diff --git a/src/or/ext_orport.c b/src/or/ext_orport.c
index 272fef4..fdcecac 100644
--- a/src/or/ext_orport.c
+++ b/src/or/ext_orport.c
@@ -633,3 +633,11 @@ connection_ext_or_start_auth(or_connection_t *or_conn)
   return 0;
 }
 
+/** Free any leftover allocated memory of the ext_orport.c subsystem. */
+void
+ext_orport_free_all(void)
+{
+  if (ext_or_auth_cookie) /* Free the auth cookie */
+    tor_free(ext_or_auth_cookie);
+}
+
diff --git a/src/or/ext_orport.h b/src/or/ext_orport.h
index 37874b5..ce45e5f 100644
--- a/src/or/ext_orport.h
+++ b/src/or/ext_orport.h
@@ -21,6 +21,7 @@ int connection_ext_or_process_inbuf(or_connection_t *or_conn);
 
 int init_ext_or_cookie_authentication(int is_enabled);
 char *get_ext_or_auth_cookie_file_name(void);
+void ext_orport_free_all(void);
 
 #ifdef EXT_ORPORT_PRIVATE
 STATIC int connection_write_ext_or_command(connection_t *conn,
diff --git a/src/or/main.c b/src/or/main.c
index d8f86bc..33e1c64 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -52,6 +52,7 @@
 #include "routerparse.h"
 #include "statefile.h"
 #include "status.h"
+#include "ext_orport.h"
 #ifdef USE_DMALLOC
 #include <dmalloc.h>
 #include <openssl/crypto.h>
@@ -2510,6 +2511,8 @@ tor_free_all(int postfork)
   memarea_clear_freelist();
   nodelist_free_all();
   microdesc_free_all();
+  ext_orport_free_all();
+  control_free_all();
   if (!postfork) {
     config_free_all();
     or_state_free_all();





More information about the tor-commits mailing list