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.