commit d31877c6bf68c942b6c66bc7a59781d75a3dc3b5 Author: Nick Mathewson nickm@torproject.org Date: Mon Jun 1 10:26:11 2015 -0400
Fix some memory leaks in ed25519 code and tests --- src/or/dircollate.c | 1 + src/test/test_dir.c | 12 +++++++----- src/test/test_microdesc.c | 1 + 3 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/src/or/dircollate.c b/src/or/dircollate.c index 34259ec..331e058 100644 --- a/src/or/dircollate.c +++ b/src/or/dircollate.c @@ -125,6 +125,7 @@ dircollator_free(dircollator_t *dc) digestmap_free(dc->by_collated_rsa_sha1, NULL);
digestmap_free(dc->by_rsa_sha1, tor_free_); + smartlist_free(dc->all_rsa_sha1_lst);
ddmap_entry_t **e, **next, *this; for (e = HT_START(double_digest_map, &dc->by_both_ids); diff --git a/src/test/test_dir.c b/src/test/test_dir.c index 3e9e955..32ac8d4 100644 --- a/src/test/test_dir.c +++ b/src/test/test_dir.c @@ -91,7 +91,6 @@ test_dir_formats(void *arg) addr_policy_t *ex1, *ex2; routerlist_t *dir1 = NULL, *dir2 = NULL; uint8_t *rsa_cc = NULL; - tor_cert_t *ntor_cc = NULL; or_options_t *options = get_options_mutable(); const addr_policy_t *p; time_t now = time(NULL); @@ -155,7 +154,6 @@ test_dir_formats(void *arg) r2->or_port = 9005; r2->dir_port = 0; r2->onion_pkey = crypto_pk_dup_key(pk2); - r2->onion_curve25519_pkey = tor_malloc_zero(sizeof(curve25519_public_key_t)); curve25519_keypair_t r2_onion_keypair; curve25519_keypair_generate(&r2_onion_keypair, 0); r2->onion_curve25519_pkey = tor_memdup(&r2_onion_keypair.pubkey, @@ -257,15 +255,19 @@ test_dir_formats(void *arg) strlcat(buf2, cert_buf, sizeof(buf2)); strlcat(buf2, "-----END CROSSCERT-----\n", sizeof(buf2)); int ntor_cc_sign; - ntor_cc = make_ntor_onion_key_crosscert(&r2_onion_keypair, + { + tor_cert_t *ntor_cc = NULL; + ntor_cc = make_ntor_onion_key_crosscert(&r2_onion_keypair, &kp1.pubkey, r2->cache_info.published_on, MIN_ONION_KEY_LIFETIME, &ntor_cc_sign); - tt_assert(ntor_cc); - base64_encode(cert_buf, sizeof(cert_buf), + tt_assert(ntor_cc); + base64_encode(cert_buf, sizeof(cert_buf), (char*)ntor_cc->encoded, ntor_cc->encoded_len, BASE64_ENCODE_MULTILINE); + tor_cert_free(ntor_cc); + } tor_snprintf(buf2+strlen(buf2), sizeof(buf2)-strlen(buf2), "ntor-onion-key-crosscert %d\n" "-----BEGIN ED25519 CERT-----\n" diff --git a/src/test/test_microdesc.c b/src/test/test_microdesc.c index 3c22e18..5dc5b2b 100644 --- a/src/test/test_microdesc.c +++ b/src/test/test_microdesc.c @@ -470,6 +470,7 @@ test_md_generate(void *arg) md = dirvote_create_microdescriptor(ri, 21); tt_str_op(md->body, ==, test_md_18);
+ routerinfo_free(ri); ri = router_parse_entry_from_string(test_ri2, NULL, 0, 0, NULL, NULL);
microdesc_free(md);