From 5a617503b729479d496c0e71c4a84a5e580f220a Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 27 Jun 2016 13:12:56 +0100 Subject: [PATCH] [CritFix] Fix writing of encrypted HTTP requests --- src/libcryptobox/keypair.c | 8 ++++++++ src/libutil/http.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/libcryptobox/keypair.c b/src/libcryptobox/keypair.c index 51e023128..355654ffc 100644 --- a/src/libcryptobox/keypair.c +++ b/src/libcryptobox/keypair.c @@ -460,6 +460,14 @@ rspamd_pubkey_calculate_nm (struct rspamd_cryptobox_pubkey *p, g_assert (kp->type == p->type); g_assert (p->type == RSPAMD_KEYPAIR_KEX); + if (p->nm == NULL) { + if (posix_memalign ((void **)&p->nm, 32, sizeof (*p->nm)) != 0) { + abort (); + } + + REF_INIT_RETAIN (p->nm, rspamd_cryptobox_nm_dtor); + } + if (kp->alg == RSPAMD_CRYPTOBOX_MODE_25519) { struct rspamd_cryptobox_pubkey_25519 *rk_25519 = RSPAMD_CRYPTOBOX_PUBKEY_25519(p); diff --git a/src/libutil/http.c b/src/libutil/http.c index 8102a26c0..0536da453 100644 --- a/src/libutil/http.c +++ b/src/libutil/http.c @@ -1495,7 +1495,7 @@ rspamd_http_connection_encrypt_message ( cnt = i; - if ((nm = rspamd_pubkey_get_nm (peer_key))) { + if ((nm = rspamd_pubkey_get_nm (peer_key)) == NULL) { nm = rspamd_pubkey_calculate_nm (peer_key, priv->local_key); } -- 2.39.5