Mark,
On 2/8/24 16:10, ma...@apache.org wrote:
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 543e2b56bc8ccbde973366975b211b61408caf8a
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Feb 8 18:54:45 2024 +0000
Reduce changes of crash on Library shutdown with OpenSSL connections
---
.../tomcat/util/net/openssl/OpenSSLContext.java | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java
b/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java
index f1d7b092ec..12dc41455b 100644
--- a/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java
+++ b/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java
@@ -46,6 +46,7 @@ import javax.net.ssl.X509TrustManager;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.jni.CertificateVerifier;
+import org.apache.tomcat.jni.Library;
import org.apache.tomcat.jni.Pool;
import org.apache.tomcat.jni.SSL;
import org.apache.tomcat.jni.SSLConf;
@@ -648,14 +649,16 @@ public class OpenSSLContext implements
org.apache.tomcat.util.net.SSLContext {
@Override
public void run() {
- if (ctx != 0) {
- SSLContext.free(ctx);
- }
- if (cctx != 0) {
- SSLConf.free(cctx);
- }
- if (aprPool != 0) {
- Pool.destroy(aprPool);
+ if (Library.isInitialized()) {
+ if (ctx != 0) {
+ SSLContext.free(ctx);
+ }
+ if (cctx != 0) {
+ SSLConf.free(cctx);
+ }
+ if (aprPool != 0) {
+ Pool.destroy(aprPool);
+ }
Should this be in a synchronized block? Probably using Library as the
monitor?
Also, maybe zero everything out afterward?
Honestly, this looks weird to my (untrained) eye. You are checking the
state of Library to determine whether or not local resources ought to be
cleaned up? That smells funny to me...
-chris
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org