You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by am...@apache.org on 2015/09/06 01:50:57 UTC

trafficserver git commit: TS-3896: Fix crash in OpenDir::close_write from unlocked mutex.

Repository: trafficserver
Updated Branches:
  refs/heads/master c096fa5b1 -> 6a00f6f66


TS-3896: Fix crash in OpenDir::close_write from unlocked mutex.


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/6a00f6f6
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/6a00f6f6
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/6a00f6f6

Branch: refs/heads/master
Commit: 6a00f6f6686dbc47d268706adae9985b8ca2657f
Parents: c096fa5
Author: Alan M. Carroll <so...@yahoo-inc.com>
Authored: Sat Sep 5 18:46:26 2015 -0500
Committer: Alan M. Carroll <so...@yahoo-inc.com>
Committed: Sat Sep 5 18:46:26 2015 -0500

----------------------------------------------------------------------
 iocore/net/SSLNetVConnection.cc | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6a00f6f6/iocore/net/SSLNetVConnection.cc
----------------------------------------------------------------------
diff --git a/iocore/net/SSLNetVConnection.cc b/iocore/net/SSLNetVConnection.cc
index e0adddb..a543209 100644
--- a/iocore/net/SSLNetVConnection.cc
+++ b/iocore/net/SSLNetVConnection.cc
@@ -411,13 +411,6 @@ SSLNetVConnection::net_read_io(NetHandler *nh, EThread *lthread)
     return;
   }
 
-  if (sslClientRenegotiationAbort == true) {
-    this->read.triggered = 0;
-    readSignalError(nh, (int)r);
-    Debug("ssl", "[SSLNetVConnection::net_read_io] client renegotiation setting read signal error");
-    return;
-  }
-
   MUTEX_TRY_LOCK_FOR(lock, s->vio.mutex, lthread, s->vio._cont);
   if (!lock.is_locked()) {
     readReschedule(nh);
@@ -430,6 +423,14 @@ SSLNetVConnection::net_read_io(NetHandler *nh, EThread *lthread)
     this->super::net_read_io(nh, lthread);
     return;
   }
+  // If the key renegotiation failed it's over, just signal the error and finish.
+  if (sslClientRenegotiationAbort == true) {
+    this->read.triggered = 0;
+    readSignalError(nh, (int)r);
+    Debug("ssl", "[SSLNetVConnection::net_read_io] client renegotiation setting read signal error");
+    return;
+  }
+
   // If it is not enabled, lower its priority.  This allows
   // a fast connection to speed match a slower connection by
   // shifting down in priority even if it could read.