From 17b9e22a98d5647c1b26cc4c1e20302c8626dad4 Mon Sep 17 00:00:00 2001 From: rpatil Date: Mon, 27 Feb 2017 19:19:17 +0530 Subject: [PATCH] 8171533: Better email transfer Reviewed-by: dfuchs, chegar, vtewari --- src/share/classes/sun/net/smtp/SmtpClient.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/share/classes/sun/net/smtp/SmtpClient.java b/src/share/classes/sun/net/smtp/SmtpClient.java index fda15ea92..e96896bc5 100644 --- a/src/share/classes/sun/net/smtp/SmtpClient.java +++ b/src/share/classes/sun/net/smtp/SmtpClient.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,6 +43,7 @@ import sun.net.TransferProtocolClient; public class SmtpClient extends TransferProtocolClient { + private static int DEFAULT_SMTP_PORT = 25; String mailhost; SmtpPrintStream message; @@ -74,6 +75,10 @@ public class SmtpClient extends TransferProtocolClient { } public void to(String s) throws IOException { + if (s.indexOf('\n') != -1) { + throw new IOException("Illegal SMTP command", + new IllegalArgumentException("Illegal carriage return")); + } int st = 0; int limit = s.length(); int pos = 0; @@ -116,16 +121,21 @@ public class SmtpClient extends TransferProtocolClient { } public void from(String s) throws IOException { - if (s.startsWith("<")) + if (s.indexOf('\n') != -1) { + throw new IOException("Illegal SMTP command", + new IllegalArgumentException("Illegal carriage return")); + } + if (s.startsWith("<")) { issueCommand("mail from: " + s + "\r\n", 250); - else + } else { issueCommand("mail from: <" + s + ">\r\n", 250); + } } /** open a SMTP connection to host host. */ private void openServer(String host) throws IOException { mailhost = host; - openServer(mailhost, 25); + openServer(mailhost, DEFAULT_SMTP_PORT); issueCommand("helo "+InetAddress.getLocalHost().getHostName()+"\r\n", 250); } -- GitLab