aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeorge Kadianakis <desnacked@riseup.net>2013-08-14 17:16:06 +0300
committerNick Mathewson <nickm@torproject.org>2013-08-15 12:03:38 -0400
commitf549e4c36d0658b6255d3b9cf7c56131d4a37a57 (patch)
tree6cb52935cd32ebafab09cbe9999bf02cdc2b08cb /src
parent33c3e60a376291faed073dcfb6c9b8a0098572a0 (diff)
downloadtor-f549e4c36d0658b6255d3b9cf7c56131d4a37a57.tar
tor-f549e4c36d0658b6255d3b9cf7c56131d4a37a57.tar.gz
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
Diffstat (limited to 'src')
-rw-r--r--src/or/control.c8
-rw-r--r--src/or/control.h1
-rw-r--r--src/or/ext_orport.c8
-rw-r--r--src/or/ext_orport.h1
-rw-r--r--src/or/main.c3
5 files changed, 21 insertions, 0 deletions
diff --git a/src/or/control.c b/src/or/control.c
index b6ba12702..03b42af53 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 3b2004bff..be9476ea3 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 272fef4d1..fdcecacda 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 37874b56f..ce45e5f41 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 d8f86bcec..33e1c6437 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();