Forráskód Böngészése

Fix another crash bug found by Jaroslaw--it is possible for dns_resolve to mark a connection to be freed, if the circuit it was attached to fails for some reason.

svn:r3623
Nick Mathewson 20 éve
szülő
commit
0289144229
1 módosított fájl, 2 hozzáadás és 1 törlés
  1. 2 1
      src/or/connection_edge.c

+ 2 - 1
src/or/connection_edge.c

@@ -910,7 +910,8 @@ int connection_exit_begin_resolve(cell_t *cell, circuit_t *circ) {
       /* Connection freed; don't touch it. */
       return 0;
     case 1: /* The result was cached; a resolved cell was sent. */
-      connection_free(dummy_conn);
+      if (!dummy_conn->marked_for_close)
+        connection_free(dummy_conn);
       return 0;
     case 0: /* resolve added to pending list */
       dummy_conn->next_stream = circ->resolving_streams;