commit c50537fd9462af45f0a53aa4f0d5ca03a08fc41e
parent 274efb126324f3f8a7e98b15a697c0038a9803d0
Author: Nick Mathewson <nickm@torproject.org>
Date: Tue, 4 Sep 2018 19:23:55 -0400
Fix a pair of remaining leaks in tortls_nss.c
Fun fact: PR_Close leaks memory if its socket is not valid.
Diffstat:
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/lib/tls/tortls_nss.c b/src/lib/tls/tortls_nss.c
@@ -361,7 +361,13 @@ tor_tls_new(tor_socket_t sock, int is_server)
(void)sock;
tor_tls_context_t *ctx = tor_tls_context_get(is_server);
- PRFileDesc *tcp = PR_ImportTCPSocket(sock);
+ PRFileDesc *tcp = NULL;
+ if (SOCKET_OK(sock)) {
+ tcp = PR_ImportTCPSocket(sock);
+ } else {
+ tcp = PR_NewTCPSocket();
+ }
+
if (!tcp)
return NULL;
diff --git a/src/test/test_router.c b/src/test/test_router.c
@@ -52,6 +52,8 @@ NS(router_get_my_routerinfo)(void)
mock_routerinfo->onion_pkey = crypto_pk_dup_key(tap_key);
mock_routerinfo->bandwidthrate = 9001;
mock_routerinfo->bandwidthburst = 9002;
+ crypto_pk_free(ident_key);
+ crypto_pk_free(tap_key);
}
return mock_routerinfo;