commit e7ff23beea6f415f661821bdefda8b1df3deb7a6 Author: John Brooks john.brooks@dereferenced.net Date: Mon Apr 13 21:35:40 2015 -0600
Make rend_authorized_client_free public
This is needed by control.c.
Also, check whether client_name is set before doing memwipe. --- src/or/rendservice.c | 5 +++-- src/or/rendservice.h | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/or/rendservice.c b/src/or/rendservice.c index 22a01c9..fbc228a 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -183,14 +183,15 @@ num_rend_services(void) }
/** Helper: free storage held by a single service authorized client entry. */ -static void +void rend_authorized_client_free(rend_authorized_client_t *client) { if (!client) return; if (client->client_key) crypto_pk_free(client->client_key); - memwipe(client->client_name, 0, strlen(client->client_name)); + if (client->client_name) + memwipe(client->client_name, 0, strlen(client->client_name)); tor_free(client->client_name); memwipe(client->descriptor_cookie, 0, sizeof(client->descriptor_cookie)); tor_free(client); diff --git a/src/or/rendservice.h b/src/or/rendservice.h index a16a99c..2bb0c6a 100644 --- a/src/or/rendservice.h +++ b/src/or/rendservice.h @@ -106,6 +106,8 @@ rend_service_port_config_t *rend_service_parse_port_config(const char *string, char **err_msg_out); void rend_service_port_config_free(rend_service_port_config_t *p);
+void rend_authorized_client_free(rend_authorized_client_t *client); + /** Return value from rend_service_add_ephemeral. */ typedef enum { RSAE_BADVIRTPORT = -4, /**< Invalid VIRTPORT/TARGET(s) */