Browse Source

Check magic number in connection_ap_attach_pending

Nick Mathewson 8 years ago
parent
commit
5665775e8c
1 changed files with 6 additions and 0 deletions
  1. 6 0
      src/or/connection_edge.c

+ 6 - 0
src/or/connection_edge.c

@@ -799,6 +799,12 @@ connection_ap_attach_pending(int retry)
       SMARTLIST_DEL_CURRENT(pending_entry_connections, entry_conn);
       continue;
     }
+    if (conn->magic != ENTRY_CONNECTION_MAGIC) {
+      log_warn(LD_BUG, "%p has impossible magic value %u",
+               entry_conn, (unsigned)conn->magic);
+      SMARTLIST_DEL_CURRENT(pending_entry_connections, entry_conn);
+      continue;
+    }
     if (conn->state != AP_CONN_STATE_CIRCUIT_WAIT) {
       log_warn(LD_BUG, "%p is no longer in circuit_wait. Its current state "
                "is %s. Why is it on pending_entry_connections?",