You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2016/03/14 10:28:09 UTC
svn commit: r1734904 -
/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org