From 58540dde50566651dc884f58cef4262eb7ac0bd8 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 11 Feb 2005 07:56:10 +0000 Subject: [PATCH] Do not try to double-aquire lock when rotating keys. May fix deadlock bug found by weasel. svn:r3616 --- src/or/router.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/or/router.c b/src/or/router.c index 4d63b914d2..0cb45def30 100644 --- a/src/or/router.c +++ b/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.");