Fun fact: PR_Close leaks memory if its socket is not valid.
(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;
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;