Author: remm Date: Mon Mar 14 09:27:48 2016 New Revision: 1734903 URL: http://svn.apache.org/viewvc?rev=1734903&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/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java?rev=1734903&r1=1734902&r2=1734903&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java Mon Mar 14 09:27:48 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; Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1734903&r1=1734902&r2=1734903&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Mon Mar 14 09:27:48 2016 @@ -45,6 +45,14 @@ issues do not "pop up" wrt. others). --> <section name="Tomcat 9.0.0.M5" rtext="In development"> + <subsection name="Coyote"> + <changelog> + <fix> + Improves OpenSSL engine robustness when SSL allocation fails for + some reason. (remm) + </fix> + </changelog> + </subsection> </section> <section name="Tomcat 9.0.0.M4" rtext="Release In Progress"> <subsection name="Catalina"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org