From 53c7905631a9cee618157d15b06775c5d633f7a5 Mon Sep 17 00:00:00 2001 From: Sam Whited Date: Sun, 9 Nov 2014 09:05:02 -0500 Subject: Check for illegal arguments to the toASCII func --- .../java/eu/siacs/conversations/xmpp/XmppConnection.java | 8 +++++++- src/main/java/eu/siacs/conversations/xmpp/jid/Jid.java | 12 ++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'src/main/java/eu/siacs') diff --git a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java index 534a6667..2b0f0ecc 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java @@ -157,7 +157,13 @@ public class XmppConnection implements Runnable { while (socketError && values.size() > i) { Bundle namePort = (Bundle) values.get(i); try { - String srvRecordServer = IDN.toASCII(namePort.getString("name")); + String srvRecordServer; + try { + srvRecordServer=IDN.toASCII(namePort.getString("name")); + } catch (final IllegalArgumentException e) { + // TODO: Handle me?` + srvRecordServer = ""; + } int srvRecordPort = namePort.getInt("port"); String srvIpServer = namePort.getString("ipv4"); InetSocketAddress addr; diff --git a/src/main/java/eu/siacs/conversations/xmpp/jid/Jid.java b/src/main/java/eu/siacs/conversations/xmpp/jid/Jid.java index a53c8096..8e9e0400 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jid/Jid.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jid/Jid.java @@ -108,9 +108,17 @@ public final class Jid { // Remove trailling "." before storing the domain part. if (dp.endsWith(".")) { - domainpart = IDN.toASCII(dp.substring(0, dp.length() - 1), IDN.USE_STD3_ASCII_RULES); + try { + domainpart = IDN.toASCII(dp.substring(0, dp.length() - 1), IDN.USE_STD3_ASCII_RULES); + } catch (final IllegalArgumentException e) { + throw new InvalidJidException(e); + } } else { - domainpart = IDN.toASCII(dp, IDN.USE_STD3_ASCII_RULES); + try { + domainpart = IDN.toASCII(dp, IDN.USE_STD3_ASCII_RULES); + } catch (final IllegalArgumentException e) { + throw new InvalidJidException(e); + } } // TODO: Find a proper domain validation library; validate individual parts, separators, etc. -- cgit v1.2.3