From cd005043b42648f83e1e0a5a5e54600c3a16e6dc Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 21 Apr 2020 18:16:58 +0200 Subject: [PATCH] Improved address validation --- .../eu/faircode/email/FragmentCompose.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index bbe0f94297..e773779fad 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -3849,6 +3849,7 @@ public class FragmentCompose extends FragmentBase { InternetAddress[] acc = (TextUtils.isEmpty(cc) ? null : InternetAddress.parse(cc)); InternetAddress[] abcc = (TextUtils.isEmpty(bcc) ? null : InternetAddress.parse(bcc)); + // Safe guard if (action == R.id.action_send) { checkAddress(ato, context); checkAddress(acc, context); @@ -4337,16 +4338,18 @@ public class FragmentCompose extends FragmentBase { if (addresses == null) return; - try { - for (InternetAddress address : addresses) + for (InternetAddress address : addresses) { + Address[] _addresses = new Address[]{address}; + try { address.validate(); - if (lookup_mx) - DnsHelper.checkMx(context, addresses); - } catch (AddressException ex) { - throw new AddressException(context.getString(R.string.title_address_parse_error, - MessageHelper.formatAddressesCompose(addresses), ex.getMessage())); - } catch (UnknownHostException ex) { - throw new AddressException(ex.getMessage()); + if (lookup_mx) + DnsHelper.checkMx(context, _addresses); + } catch (AddressException ex) { + throw new AddressException(context.getString(R.string.title_address_parse_error, + MessageHelper.formatAddressesCompose(_addresses), ex.getMessage())); + } catch (UnknownHostException ex) { + throw new AddressException(ex.getMessage()); + } } } };