Parcourir la source

Avoid double-free on tor-resolve failure

svn:r3567
Nick Mathewson il y a 20 ans
Parent
commit
a64b03a4fd
1 fichiers modifiés avec 3 ajouts et 1 suppressions
  1. 3 1
      src/or/connection_edge.c

+ 3 - 1
src/or/connection_edge.c

@@ -906,8 +906,10 @@ int connection_exit_begin_resolve(cell_t *cell, circuit_t *circ) {
 
   /* send it off to the gethostbyname farm */
   switch (dns_resolve(dummy_conn)) {
-    case 1: /* The result was cached; a resolved cell was sent. */
     case -1: /* Impossible to resolve; a resolved cell was sent. */
+      /* Connection freed; don't touch it. */
+      return 0;
+    case 1: /* The result was cached; a resolved cell was sent. */
       connection_free(dummy_conn);
       return 0;
     case 0: /* resolve added to pending list */