From a7d1b42409e2b5ed365345c403dfda4c92901223 Mon Sep 17 00:00:00 2001 From: Jorge Ruesga Date: Wed, 17 Dec 2014 01:04:27 +0100 Subject: [PATCH] email: start handshake before hostname verification Start handshake prior to hostname verification to ensure exceptions do not get silenced Change-Id: Ide60753663d82d63b0f410b985447b7b26efd8f1 Signed-off-by: Jorge Ruesga --- .../com/android/emailcommon/utility/SSLSocketFactory.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/emailcommon/src/com/android/emailcommon/utility/SSLSocketFactory.java b/emailcommon/src/com/android/emailcommon/utility/SSLSocketFactory.java index 4d19e158c..7a0c24c1c 100644 --- a/emailcommon/src/com/android/emailcommon/utility/SSLSocketFactory.java +++ b/emailcommon/src/com/android/emailcommon/utility/SSLSocketFactory.java @@ -335,6 +335,10 @@ public class SSLSocketFactory implements LayeredSocketFactory { // Set Server Name Indication if is available for this socket setSocketHostname(sslsock, host); + // Start handshake prior to hostname verification to ensure + // handshake exceptions do not get silenced by hostname verification. + sslsock.startHandshake(); + try { hostnameVerifier.verify(host, sslsock); // verifyHostName() didn't blowup - good! @@ -402,6 +406,10 @@ public class SSLSocketFactory implements LayeredSocketFactory { // Set Server Name Indication if it's available for this socket setSocketHostname(sslSocket, host); + // Start handshake prior to hostname verification to ensure + // handshake exceptions do not get silenced by hostname verification. + sslSocket.startHandshake(); + hostnameVerifier.verify(host, sslSocket); // verifyHostName() didn't blowup - good! return sslSocket;