]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Don't leak an extend_info_t in rend_client_any_intro_points_usable
authorRobert Ransom <rransom.8774@gmail.com>
Mon, 7 Nov 2011 16:35:51 +0000 (08:35 -0800)
committerRobert Ransom <rransom.8774@gmail.com>
Mon, 7 Nov 2011 16:35:51 +0000 (08:35 -0800)
changes/bug4424 [new file with mode: 0644]
src/or/rendclient.c

diff --git a/changes/bug4424 b/changes/bug4424
new file mode 100644 (file)
index 0000000..6928745
--- /dev/null
@@ -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.
+
index f84475acbcc8c77392df7438f0db95f33546c66b..3dfca58f860997ba924f0905f1f7ceefb787c670 100644 (file)
@@ -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