From f41f3b120cdf8ee07a6f10b17c38cbb6cb2692eb Mon Sep 17 00:00:00 2001 From: iNPUTmice Date: Sun, 16 Nov 2014 12:00:53 +0100 Subject: [PATCH] better error checking in ssl switch over Conflicts: src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java --- .../siacs/conversations/xmpp/XmppConnection.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java index 2b9d6632d..d59a302dc 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java @@ -18,6 +18,8 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.math.BigInteger; +import java.net.IDN; +import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; import java.net.UnknownHostException; @@ -553,12 +555,15 @@ public class XmppConnection implements Runnable { HostnameVerifier verifier = this.mXmppConnectionService.getMemorizingTrustManager().wrapHostnameVerifier(new StrictHostnameVerifier()); - if (socket == null) { - throw new IOException("socket was null"); + if (socket == null || socket.isClosed()) { + throw new IOException("socket null or closed"); } - SSLSocket sslSocket = (SSLSocket) factory.createSocket(socket, - socket.getInetAddress().getHostAddress(), socket.getPort(), - true); + final InetAddress address = socket.getInetAddress(); + if (address == null) { + throw new IOException("socket address was null"); + } + + final SSLSocket sslSocket = (SSLSocket) factory.createSocket(socket,address.getHostAddress(), socket.getPort(),true); // Support all protocols except legacy SSL. // The min SDK version prevents us having to worry about SSLv2. In