Browse Source

Correctly handle machines out of tokens that have not closed yet.

Perhaps the machine on the other side is still not done.
George Kadianakis 5 years ago
parent
commit
9b582edddb
1 changed files with 5 additions and 0 deletions
  1. 5 0
      src/core/or/circuitpadding.c

+ 5 - 0
src/core/or/circuitpadding.c

@@ -605,6 +605,11 @@ circpad_machine_sample_delay(circpad_machine_runtime_t *mi)
     histogram_total_tokens = state->histogram_total_tokens;
   }
 
+  /* If we are out of tokens, don't schedule padding. */
+  if (!histogram_total_tokens) {
+    return CIRCPAD_DELAY_INFINITE;
+  }
+
   bin_choice = crypto_fast_rng_get_uint64(get_thread_fast_rng(),
                                           histogram_total_tokens);