From: Nick Mathewson Date: Thu, 18 Dec 2008 05:40:57 +0000 (+0000) Subject: Make it possible to call set_onion_key twice without leaking RAM. X-Git-Tag: tor-0.2.1.9-alpha~65 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1b735e46dd10b519b16d9dc721b4564df570349a;p=thirdparty%2Ftor.git Make it possible to call set_onion_key twice without leaking RAM. svn:r17673 --- diff --git a/src/or/router.c b/src/or/router.c index 8211d68197..cc2043d6a2 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -53,13 +53,15 @@ static authority_cert_t *legacy_key_certificate = NULL; * used by tor-gencert to sign new signing keys and make new key * certificates. */ -/** Replace the current onion key with k. Does not affect lastonionkey; - * to update onionkey correctly, call rotate_onion_key(). +/** Replace the current onion key with k. Does not affect + * lastonionkey; to update lastonionkey correctly, call rotate_onion_key(). */ static void set_onion_key(crypto_pk_env_t *k) { tor_mutex_acquire(key_lock); + if (onionkey) + crypto_free_pk_env(onionkey); onionkey = k; onionkey_set_at = time(NULL); tor_mutex_release(key_lock);