]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Fix a small memory leak whenever we decide against using a
authorRoger Dingledine <arma@torproject.org>
Thu, 15 Nov 2007 11:14:08 +0000 (11:14 +0000)
committerRoger Dingledine <arma@torproject.org>
Thu, 15 Nov 2007 11:14:08 +0000 (11:14 +0000)
newly picked entry guard. Reported by Mike Perry.

svn:r12506

ChangeLog
src/or/circuitbuild.c

index c4c57a89485f4a89ff81135594244e66787eded9..60815ed218e63ca3533f4c345bd9b1f2fbafb06c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,12 +6,15 @@ Changes in version 0.2.0.12-alpha - 2007-11-??
   o Minor bugfixes:
     - When we're lacking a consensus, don't try to perform rendezvous
       operations.  (Bug spotted by Karsten)
+    - Fix a small memory leak whenever we decide against using a
+      newly picked entry guard. Reported by Mike Perry.
 
   o Minor features:
     - When we negotiate a v2 OR connection (not yet implemented), accept
       RELAY_EARLY cells and turn them into RELAY cells if we've negotiated
       a v1 connection.  Initial code for proposal 110.
 
+
 Changes in version 0.2.0.11-alpha - 2007-11-12
   o Security fixes:
     - Exit policies now reject connections that are addressed to a
index 761bcfe6a238f56fab985ea92ea7638f326ce779..3a86b95b6c965f97d2ec88e7c9ec91c88b0f40d6 100644 (file)
@@ -2281,7 +2281,7 @@ entry_guard_register_connect_status(const char *digest, int succeeded,
                "Removing from the list. %d/%d entry guards usable/new.",
                entry->nickname, buf,
                num_live_entry_guards()-1, smartlist_len(entry_guards)-1);
-      tor_free(entry);
+      entry_guard_free(entry);
       smartlist_del_keeporder(entry_guards, idx);
       log_entry_guards(LOG_INFO);
       changed = 1;
@@ -2291,6 +2291,7 @@ entry_guard_register_connect_status(const char *digest, int succeeded,
       entry->unreachable_since = entry->last_attempted = now;
       control_event_guard(entry->nickname, entry->identity, "DOWN");
       changed = 1;
+      entry->can_retry = 0; /* We gave it an early chance; no good. */
     } else {
       char tbuf[ISO_TIME_LEN+1];
       format_iso_time(tbuf, entry->unreachable_since);
@@ -2298,9 +2299,8 @@ entry_guard_register_connect_status(const char *digest, int succeeded,
                 "'%s' (%s).  It has been unreachable since %s.",
                 entry->nickname, buf, tbuf);
       entry->last_attempted = now;
-    }
-    if (entry)
       entry->can_retry = 0; /* We gave it an early chance; no good. */
+    }
   }
 
   if (first_contact) {