Author: remm Date: Mon Mar 14 09:28:09 2016 New Revision: 1734904 URL: http://svn.apache.org/viewvc?rev=1734904&view=rev Log: Improve OpenSSL robustness if SSL (or BIO) creation fails so that it doesn't crash when trying to destroy it later.
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java?rev=1734904&r1=1734903&r2=1734904&view=diff ============================================================================== --- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java (original) +++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java Mon Mar 14 09:28:09 2016 @@ -199,6 +199,7 @@ public final class OpenSSLEngine extends session = new OpenSSLSession(); ssl = SSL.newSSL(sslCtx, !clientMode); networkBIO = SSL.makeNetworkBIO(ssl); + DESTROYED_UPDATER.compareAndSet(this, 0, 1); this.fallbackApplicationProtocol = fallbackApplicationProtocol; this.clientMode = clientMode; this.sessionContext = sessionContext; @@ -214,7 +215,7 @@ public final class OpenSSLEngine extends * Destroys this engine. */ public synchronized void shutdown() { - if (DESTROYED_UPDATER.compareAndSet(this, 0, 1)) { + if (DESTROYED_UPDATER.compareAndSet(this, 1, 2)) { SSL.freeSSL(ssl); SSL.freeBIO(networkBIO); ssl = networkBIO = 0; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org