Просмотр исходного кода

Do not try to double-aquire lock when rotating keys. May fix deadlock bug found by weasel.

svn:r3616
Nick Mathewson 20 лет назад
Родитель
Сommit
58540dde50
1 измененных файлов с 4 добавлено и 2 удалено
  1. 4 2
      src/or/router.c

+ 4 - 2
src/or/router.c

@@ -129,13 +129,15 @@ void rotate_onion_key(void)
     log(LOG_ERR, "Couldn't write generated key to %s.", fname);
     goto error;
   }
+  log_fn(LOG_INFO, "Rotating onion key");
   tor_mutex_acquire(key_lock);
   if (lastonionkey)
     crypto_free_pk_env(lastonionkey);
-  log_fn(LOG_INFO, "Rotating onion key");
   lastonionkey = onionkey;
-  set_onion_key(prkey);
+  onionkey = prkey;
+  onionkey_set_at = time(NULL);
   tor_mutex_release(key_lock);
+  mark_my_descriptor_dirty();
   return;
  error:
   log_fn(LOG_WARN, "Couldn't rotate onion key.");