From: Vsevolod Stakhov Date: Mon, 27 Jun 2016 12:12:56 +0000 (+0100) Subject: [CritFix] Fix writing of encrypted HTTP requests X-Git-Tag: 1.3.0~245 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5a617503b729479d496c0e71c4a84a5e580f220a;p=thirdparty%2Frspamd.git [CritFix] Fix writing of encrypted HTTP requests --- diff --git a/src/libcryptobox/keypair.c b/src/libcryptobox/keypair.c index 51e0231284..355654ffcd 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 8102a26c03..0536da453a 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); }