diff options
-rw-r--r-- | src/or/control.c | 4 | ||||
-rw-r--r-- | src/or/microdesc.c | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/or/control.c b/src/or/control.c index 053c00b069..cd2df5ac34 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -1201,6 +1201,10 @@ handle_control_authenticate(control_connection_t *conn, uint32_t len, tor_free(password); connection_printf_to_buf(conn, "515 Authentication failed: %s\r\n", errstr); connection_mark_for_close(TO_CONN(conn)); + if (sl) { /* clean up */ + SMARTLIST_FOREACH(sl, char *, cp, tor_free(cp)); + smartlist_free(sl); + } return 0; ok: log_info(LD_CONTROL, "Authenticated control connection ("TOR_SOCKET_T_FORMAT diff --git a/src/or/microdesc.c b/src/or/microdesc.c index ed586f37c2..576fed0066 100644 --- a/src/or/microdesc.c +++ b/src/or/microdesc.c @@ -576,6 +576,7 @@ microdesc_cache_rebuild(microdesc_cache_t *cache, int force) microdesc_wipe_body(md); } } + smartlist_free(wrote); return -1; } |