# HG changeset patch # User vtewari # Date 1486701670 -19800 # Node ID c5f03e77cd67b77f5dfd7a0de975ed9659bdae36 # Parent b887cb49e622374b7697653359c4b99f7cd08a6b 8170222: Better transfers of files Reviewed-by: dfuchs, chegar diff -r b887cb49e622 -r c5f03e77cd67 jdk/src/java.base/share/classes/sun/net/ftp/impl/FtpClient.java --- a/jdk/src/java.base/share/classes/sun/net/ftp/impl/FtpClient.java Fri Feb 03 14:10:33 2017 -0500 +++ b/jdk/src/java.base/share/classes/sun/net/ftp/impl/FtpClient.java Fri Feb 10 10:11:10 2017 +0530 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 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 @@ -516,7 +516,8 @@ * @return true if the command was successful * @throws IOException */ - private boolean issueCommand(String cmd) throws IOException { + private boolean issueCommand(String cmd) throws IOException, + sun.net.ftp.FtpProtocolException { if (!isConnected()) { throw new IllegalStateException("Not connected"); } @@ -527,6 +528,12 @@ // ignore... } } + if (cmd.indexOf('\n') != -1) { + sun.net.ftp.FtpProtocolException ex + = new sun.net.ftp.FtpProtocolException("Illegal FTP command"); + ex.initCause(new IllegalArgumentException("Illegal carriage return")); + throw ex; + } sendServer(cmd + "\r\n"); return readReply(); } @@ -1119,7 +1126,10 @@ */ public void close() throws IOException { if (isConnected()) { - issueCommand("QUIT"); + try { + issueCommand("QUIT"); + } catch (FtpProtocolException e) { + } loggedIn = false; } disconnect(); @@ -1897,7 +1907,8 @@ return null; } - private boolean sendSecurityData(byte[] buf) throws IOException { + private boolean sendSecurityData(byte[] buf) throws IOException, + sun.net.ftp.FtpProtocolException { String s = Base64.getMimeEncoder().encodeToString(buf); return issueCommand("ADAT " + s); }