File 2583-crypto-dh.c-change-len-type-to-ErlNifUInt64.patch of Package erlang
From ea0acb49c00d7b322dfd3c25900c66cead740e42 Mon Sep 17 00:00:00 2001
From: Jakub Witczak <kuba@erlang.org>
Date: Fri, 14 Apr 2023 17:55:35 +0200
Subject: [PATCH] crypto: dh.c change len type to ErlNifUInt64
- fix for "Can't do fromdata" observed on Windows builds
- and ssh tests
---
lib/crypto/c_src/dh.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/crypto/c_src/dh.c b/lib/crypto/c_src/dh.c
index 4bcab0ec6e..92a339ab5f 100644
--- a/lib/crypto/c_src/dh.c
+++ b/lib/crypto/c_src/dh.c
@@ -41,7 +41,7 @@ ERL_NIF_TERM dh_compute_key_nif(ErlNifEnv* env, int argc, const ERL_NIF_TERM arg
/* Has 3_0 */
ERL_NIF_TERM dh_generate_key_nif(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
{/* (PrivKey|undefined, DHParams=[P,G], 0, Len|0) */
- unsigned long len = 0;
+ ErlNifUInt64 len = 0;
int i = 0;
OSSL_PARAM params[8];
EVP_PKEY *pkey = NULL, *pkey_gen = NULL;
@@ -84,7 +84,7 @@ ERL_NIF_TERM dh_generate_key_nif(ErlNifEnv* env, int argc, const ERL_NIF_TERM ar
*/
/* argv[3] is the length of the private key that is to be generated */
- if (!enif_get_ulong(env, argv[3], &len) ||
+ if (!enif_get_uint64(env, argv[3], &len) ||
(len > LONG_MAX) ) {
ret = EXCP_BADARG_N(env, 3, "Bad value of length element");
goto done;
--
2.43.0