Przeglądaj źródła

defensive programming to catch duplicate calls to connection_init_or_handshake_state

Nick Mathewson 12 lat temu
rodzic
commit
ce703bd53e
1 zmienionych plików z 4 dodań i 0 usunięć
  1. 4 0
      src/or/connection_or.c

+ 4 - 0
src/or/connection_or.c

@@ -1583,6 +1583,10 @@ int
 connection_init_or_handshake_state(or_connection_t *conn, int started_here)
 {
   or_handshake_state_t *s;
+  if (conn->handshake_state) {
+    log_warn(LD_BUG, "Duplicate call to connection_init_or_handshake_state!");
+    return 0;
+  }
   s = conn->handshake_state = tor_malloc_zero(sizeof(or_handshake_state_t));
   s->started_here = started_here ? 1 : 0;
   s->digest_sent_data = 1;