--- a/jdk/src/java.base/share/classes/sun/net/smtp/SmtpClient.java Fri Feb 10 10:11:10 2017 +0530
+++ b/jdk/src/java.base/share/classes/sun/net/smtp/SmtpClient.java Wed Feb 22 15:23:09 2017 +0530
@@ -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 @@
public class SmtpClient extends TransferProtocolClient {
+ private static int DEFAULT_SMTP_PORT = 25;
String mailhost;
SmtpPrintStream message;
@@ -74,6 +75,10 @@
}
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 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 <i>host</i>. */
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);
}