This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-crypto.git
The following commit(s) were added to refs/heads/master by this push: new 8d72f6c3 CRYPTO-166 Library is reloaded multiple times 8d72f6c3 is described below commit 8d72f6c3c1e713030e1c0f6045394cf624eacdfd Author: Sebb <s...@apache.org> AuthorDate: Fri Nov 24 17:18:57 2023 +0000 CRYPTO-166 Library is reloaded multiple times --- src/changes/changes.xml | 1 + src/main/native/org/apache/commons/crypto/OpenSslInfoNative.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 971ada1a..25959d4a 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -65,6 +65,7 @@ <body> <release version="1.2.1" date="202X-MM-DD" description="Minor release (Java 8, OpenSSL 1.1.1)"> <!-- FIX --> + <action issue="CRYPTO-166" type="fix" dev="sebb">Library is reloaded multiple times</action> <action issue="CRYPTO-175" type="fix" dev="sebb">JNA tests rely on JNI code</action> <action issue="CRYPTO-178" type="fix" dev="sebb">OpenSslCryptoRandom.isNativeCodeEnabled() throws if library cannot be loaded</action> <action issue="CRYPTO-173" type="fix" dev="sebb">docker build does not work on macOS M1</action> diff --git a/src/main/native/org/apache/commons/crypto/OpenSslInfoNative.c b/src/main/native/org/apache/commons/crypto/OpenSslInfoNative.c index 2dbaa92a..646ec715 100644 --- a/src/main/native/org/apache/commons/crypto/OpenSslInfoNative.c +++ b/src/main/native/org/apache/commons/crypto/OpenSslInfoNative.c @@ -72,6 +72,8 @@ static void get_methods(JNIEnv *env, HMODULE openssl) #endif } +static bool loaded = false; // have we successfully loaded the library and the methods? + static int load_library(JNIEnv *env) { HMODULE openssl = open_library(env); // calls THROW and returns 0 on error @@ -79,7 +81,10 @@ static int load_library(JNIEnv *env) if (!openssl) { return 0; } - get_methods(env, openssl); + if (!loaded) { + get_methods(env, openssl); + loaded = true; + } return 1; }