aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libcryptobox/keypair.c8
-rw-r--r--src/libutil/http.c2
2 files changed, 9 insertions, 1 deletions
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);
}