diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-06-29 13:06:15 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-06-29 13:06:15 -0400 |
commit | f6b30a97a96837e012b296a43cc99018d96bcf13 (patch) | |
tree | c54975bf9670ab98e42c5f917afc075f72846aa8 | |
parent | 5ab23e03fa0a8bce11798cbf025139e9653b9be4 (diff) | |
parent | f82f8179e65c5e0021da46fd24e4bd7d8126d8f7 (diff) | |
download | tor-f6b30a97a96837e012b296a43cc99018d96bcf13.tar.gz tor-f6b30a97a96837e012b296a43cc99018d96bcf13.zip |
Merge branch 'maint-0.3.3' into maint-0.3.4
-rw-r--r-- | changes/ticket26467 | 3 | ||||
-rw-r--r-- | src/or/directory.c | 1 | ||||
-rw-r--r-- | src/or/hs_descriptor.c | 1 | ||||
-rw-r--r-- | src/test/hs_test_helpers.c | 6 | ||||
-rw-r--r-- | src/test/test_channelpadding.c | 2 | ||||
-rw-r--r-- | src/test/test_hs_descriptor.c | 11 |
6 files changed, 18 insertions, 6 deletions
diff --git a/changes/ticket26467 b/changes/ticket26467 new file mode 100644 index 0000000000..45883786c2 --- /dev/null +++ b/changes/ticket26467 @@ -0,0 +1,3 @@ + o Minor bugfixes (memory, correctness): + - Fix a number of small memory leaks identified by coverity. Fixes + bug 26467; bugfix on numerous Tor versions. diff --git a/src/or/directory.c b/src/or/directory.c index c7da804909..e763de268f 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -3684,6 +3684,7 @@ client_likes_consensus(const struct consensus_cache_entry_t *ent, int have = 0; if (consensus_cache_entry_get_voter_id_digests(ent, voters) != 0) { + smartlist_free(voters); return 1; // We don't know the voters; assume the client won't mind. */ } diff --git a/src/or/hs_descriptor.c b/src/or/hs_descriptor.c index 096122392d..7ffa885ca8 100644 --- a/src/or/hs_descriptor.c +++ b/src/or/hs_descriptor.c @@ -1127,6 +1127,7 @@ decode_link_specifiers(const char *encoded) sizeof(hs_spec->u.ed25519_id)); break; default: + tor_free(hs_spec); goto err; } diff --git a/src/test/hs_test_helpers.c b/src/test/hs_test_helpers.c index 9355971267..5c1b9123d8 100644 --- a/src/test/hs_test_helpers.c +++ b/src/test/hs_test_helpers.c @@ -86,6 +86,9 @@ hs_helper_build_intro_point(const ed25519_keypair_t *signing_kp, time_t now, intro_point = ip; done: + if (intro_point == NULL) + tor_free(ip); + return intro_point; } @@ -143,6 +146,9 @@ hs_helper_build_hs_desc_impl(unsigned int no_ip, descp = desc; done: + if (descp == NULL) + tor_free(desc); + return descp; } diff --git a/src/test/test_channelpadding.c b/src/test/test_channelpadding.c index 2c803c3443..661a356ae4 100644 --- a/src/test/test_channelpadding.c +++ b/src/test/test_channelpadding.c @@ -769,6 +769,8 @@ test_channelpadding_consensus(void *arg) tt_i64_op(val, OP_LE, 24*60*60*2); done: + tor_free(relay); + free_mock_consensus(); free_fake_channeltls((channel_tls_t*)chan); smartlist_free(connection_array); diff --git a/src/test/test_hs_descriptor.c b/src/test/test_hs_descriptor.c index 988f77f2fa..b84941a965 100644 --- a/src/test/test_hs_descriptor.c +++ b/src/test/test_hs_descriptor.c @@ -176,6 +176,9 @@ test_link_specifier(void *arg) ssize_t ret; hs_desc_link_specifier_t spec; smartlist_t *link_specifiers = smartlist_new(); + char buf[256]; + char *b64 = NULL; + link_specifier_t *ls = NULL; (void) arg; @@ -185,9 +188,7 @@ test_link_specifier(void *arg) /* Test IPv4 for starter. */ { - char *b64, buf[256]; uint32_t ipv4; - link_specifier_t *ls; spec.type = LS_IPV4; ret = tor_addr_parse(&spec.u.ap.addr, "1.2.3.4"); @@ -214,9 +215,7 @@ test_link_specifier(void *arg) /* Test IPv6. */ { - char *b64, buf[256]; uint8_t ipv6[16]; - link_specifier_t *ls; spec.type = LS_IPV6; ret = tor_addr_parse(&spec.u.ap.addr, "[1:2:3:4::]"); @@ -246,9 +245,7 @@ test_link_specifier(void *arg) /* Test legacy. */ { - char *b64, buf[256]; uint8_t *id; - link_specifier_t *ls; spec.type = LS_LEGACY_ID; memset(spec.u.legacy_id, 'Y', sizeof(spec.u.legacy_id)); @@ -274,6 +271,8 @@ test_link_specifier(void *arg) } done: + link_specifier_free(ls); + tor_free(b64); smartlist_free(link_specifiers); } |