aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ransom <rransom.8774@gmail.com>2011-11-07 08:35:51 -0800
committerRobert Ransom <rransom.8774@gmail.com>2011-11-07 08:35:51 -0800
commit65a0d7e7ef03cc2390cad81264e451e59206842b (patch)
treef68795041ef3fd4bc7dbca843a64f7d9226cf7fa
parent972564630e8f85499e611f1eeb7174d0c0230731 (diff)
downloadtor-65a0d7e7ef03cc2390cad81264e451e59206842b.tar.gz
tor-65a0d7e7ef03cc2390cad81264e451e59206842b.zip
Don't leak an extend_info_t in rend_client_any_intro_points_usable
-rw-r--r--changes/bug44246
-rw-r--r--src/or/rendclient.c10
2 files changed, 14 insertions, 2 deletions
diff --git a/changes/bug4424 b/changes/bug4424
new file mode 100644
index 0000000000..6928745896
--- /dev/null
+++ b/changes/bug4424
@@ -0,0 +1,6 @@
+ o Major bugfixes
+
+ - Don't leak memory when we check whether a hidden service
+ descriptor has any usable introduction points left. Fixes bug
+ 4424. Bugfix on 0.2.2.25-alpha; found by frosty_un.
+
diff --git a/src/or/rendclient.c b/src/or/rendclient.c
index f84475acbc..3dfca58f86 100644
--- a/src/or/rendclient.c
+++ b/src/or/rendclient.c
@@ -952,8 +952,14 @@ rend_client_get_random_intro_impl(const rend_cache_entry_t *entry,
int
rend_client_any_intro_points_usable(const rend_cache_entry_t *entry)
{
- return rend_client_get_random_intro_impl(
- entry, get_options()->StrictNodes, 0) != NULL;
+ extend_info_t *extend_info =
+ rend_client_get_random_intro_impl(entry, get_options()->StrictNodes, 0);
+ int rv = extend_info != NULL;
+
+ if (extend_info != NULL)
+ extend_info_free(extend_info);
+
+ return rv;
}
/** Client-side authorizations for hidden services; map of onion address to