Переглянути джерело

Detach circuits from circuitmux early when freeing channel so they can find the channel by ID

Andrea Shepard 13 роки тому
батько
коміт
c097fb33fc
1 змінених файлів з 4 додано та 0 видалено
  1. 4 0
      src/or/channel.c

+ 4 - 0
src/or/channel.c

@@ -2766,6 +2766,10 @@ channel_free_list(smartlist_t *channels, int mark_for_close)
               "in state %s (%d)",
               curr, U64_PRINTF_ARG(curr->global_identifier),
               channel_state_to_string(curr->state), curr->state);
+    /* Detach circuits early so they can find the channel */
+    if (curr->cmux) {
+      circuitmux_detach_all_circuits(curr->cmux);
+    }
     channel_unregister(curr);
     if (mark_for_close) {
       if (!(curr->state == CHANNEL_STATE_CLOSING ||