File 3713-crypto-Fix-bug-in-privkey_to_pubkey-dss-EngineKey-fo.patch of Package erlang

From 56b289bc7ae9aa993fa80639be2392b818e3f931 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Mon, 23 Oct 2023 20:54:56 +0200
Subject: [PATCH 3/3] crypto: Fix bug in privkey_to_pubkey(dss, EngineKey) for
 OpenSSL 3

---
 lib/crypto/c_src/dss.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/crypto/c_src/dss.c b/lib/crypto/c_src/dss.c
index 2e19453e50..0756e9076d 100644
--- a/lib/crypto/c_src/dss.c
+++ b/lib/crypto/c_src/dss.c
@@ -109,7 +109,7 @@ err:
 int dss_privkey_to_pubkey(ErlNifEnv* env, EVP_PKEY *pkey, ERL_NIF_TERM *ret)
 // HAS_3_0_API
 {
-    ERL_NIF_TERM result[5];
+    ERL_NIF_TERM result[4];
     BIGNUM *p = NULL, *q = NULL, *g = NULL, *pub = NULL;
 
     if (
@@ -119,8 +119,8 @@ int dss_privkey_to_pubkey(ErlNifEnv* env, EVP_PKEY *pkey, ERL_NIF_TERM *ret)
         || !EVP_PKEY_get_bn_param(pkey, "pub", &pub)
         || ((result[0] = bin_from_bn(env, p)) == atom_error)
         || ((result[1] = bin_from_bn(env, q)) == atom_error)
-        || ((result[1] = bin_from_bn(env, g)) == atom_error)
-        || ((result[1] = bin_from_bn(env, pub)) == atom_error)
+        || ((result[2] = bin_from_bn(env, g)) == atom_error)
+        || ((result[3] = bin_from_bn(env, pub)) == atom_error)
         )
         goto err;
 
-- 
2.35.3

openSUSE Build Service is sponsored by