diff options
author | Nick Mathewson <nickm@torproject.org> | 2011-01-25 18:09:38 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2011-01-25 18:09:38 -0500 |
commit | 76582442a8baefe1b469f86d35ce2d00f01a00ca (patch) | |
tree | 005100cf30b802625b7a3ea8f81511f0f3b3a7c6 /src | |
parent | c939c953aef7018f9581d934ef9713e50bd8df16 (diff) | |
download | tor-76582442a8baefe1b469f86d35ce2d00f01a00ca.tar.gz tor-76582442a8baefe1b469f86d35ce2d00f01a00ca.zip |
Handle failing cases of DH allocation
Diffstat (limited to 'src')
-rw-r--r-- | src/common/tortls.c | 1 | ||||
-rw-r--r-- | src/or/onion.c | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/common/tortls.c b/src/common/tortls.c index 8ad0f2f310..10f4440cb4 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -808,6 +808,7 @@ tor_tls_context_new(crypto_pk_env_t *identity, unsigned int key_lifetime) goto error; { crypto_dh_env_t *dh = crypto_dh_new(DH_TYPE_TLS); + tor_assert(dh); SSL_CTX_set_tmp_dh(result->ctx, _crypto_dh_env_get_dh(dh)); crypto_dh_free(dh); } diff --git a/src/or/onion.c b/src/or/onion.c index 9aa16d2747..e1d10a60bb 100644 --- a/src/or/onion.c +++ b/src/or/onion.c @@ -259,6 +259,10 @@ onion_skin_server_handshake(const char *onion_skin, /*ONIONSKIN_CHALLENGE_LEN*/ } dh = crypto_dh_new(DH_TYPE_CIRCUIT); + if (!dh) { + log_warn(LD_BUG, "Couldn't allocate DH key"); + goto err; + } if (crypto_dh_get_public(dh, handshake_reply_out, DH_KEY_LEN)) { log_info(LD_GENERAL, "crypto_dh_get_public failed."); goto err; |