diff options
author | Sebastian Hahn <sebastian@torproject.org> | 2010-10-26 18:22:04 +0200 |
---|---|---|
committer | Sebastian Hahn <sebastian@torproject.org> | 2010-10-26 18:22:04 +0200 |
commit | 213139f887edd5f366108e72d77c33bcfa3f8ba9 (patch) | |
tree | c53f0737feb427c77cedfca2d8b66f48cea11425 /src/common/crypto.c | |
parent | 441241c13692051ff1b4ae86eaf472a8782cd5d6 (diff) | |
download | tor-213139f887edd5f366108e72d77c33bcfa3f8ba9.tar.gz tor-213139f887edd5f366108e72d77c33bcfa3f8ba9.zip |
Properly refcount client_identity_key
In a2bb0bf we started using a separate client identity key. When we are
in "public server mode" (that means not a bridge) we will use the same
key. Reusing the key without doing the proper refcounting leads to a
segfault on cleanup during shutdown. Fix that.
Also introduce an assert that triggers if our refcount falls below 0.
That should never happen.
Diffstat (limited to 'src/common/crypto.c')
-rw-r--r-- | src/common/crypto.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/common/crypto.c b/src/common/crypto.c index bfb81d3ccd..b49547fa4d 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -405,6 +405,7 @@ crypto_free_pk_env(crypto_pk_env_t *env) if (--env->refs > 0) return; + tor_assert(env->refs == 0); if (env->key) RSA_free(env->key); |