aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/tortls.c4
-rw-r--r--src/or/command.c1
2 files changed, 3 insertions, 2 deletions
diff --git a/src/common/tortls.c b/src/common/tortls.c
index 9a3c02b5b..e540bfdc1 100644
--- a/src/common/tortls.c
+++ b/src/common/tortls.c
@@ -864,8 +864,8 @@ tor_tls_get_my_client_auth_key(void)
}
/**
- * Return the public key that a cetificate certifies. Return NULL if the
- * cert's key is not RSA.
+ * Return a newly allocated copy of the public key that a certificate
+ * certifies. Return NULL if the cert's key is not RSA.
*/
crypto_pk_env_t *
tor_tls_cert_get_key(tor_cert_t *cert)
diff --git a/src/or/command.c b/src/or/command.c
index 1b8ddb30d..49c9880e3 100644
--- a/src/or/command.c
+++ b/src/or/command.c
@@ -1190,6 +1190,7 @@ command_process_authenticate_cell(var_cell_t *cell, or_connection_t *conn)
signed_len = crypto_pk_public_checksig(pk, signed_data, keysize,
(char*)auth + V3_AUTH_BODY_LEN,
authlen - V3_AUTH_BODY_LEN);
+ crypto_free_pk_env(pk);
if (signed_len < 0) {
tor_free(signed_data);
ERR("Signature wasn't valid");