]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Handle failing cases of DH allocation
authorNick Mathewson <nickm@torproject.org>
Tue, 25 Jan 2011 23:09:38 +0000 (18:09 -0500)
committerNick Mathewson <nickm@torproject.org>
Tue, 25 Jan 2011 23:09:38 +0000 (18:09 -0500)
src/common/tortls.c
src/or/onion.c

index 8ad0f2f310eda2bd0705aa708ca4147c862b18e5..10f4440cb459373d14bbd98b1dc5cf6ea90e1e1b 100644 (file)
@@ -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);
   }
index 9aa16d27477617a3ae42a1312315567a2097dae5..e1d10a60bb59c852befd719d1dccc155ee01c065 100644 (file)
@@ -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;