From 36b42ca65dafa499103da0dc5320580e1f280fd3 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Thu, 30 Jul 2020 09:13:01 -0500 Subject: [PATCH] Issue #3916 - Fix whitespace between boundary and part headers Signed-off-by: Joakim Erdfelt --- .../jetty/util/MultiPartOutputStream.java | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartOutputStream.java b/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartOutputStream.java index dcd3898cfc95..f4d71872991d 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartOutputStream.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartOutputStream.java @@ -29,8 +29,8 @@ public class MultiPartOutputStream extends FilterOutputStream { - private static final byte[] __CRLF = {'\r', '\n'}; - private static final byte[] __DASHDASH = {'-', '-'}; + private static final byte[] CRLF = {'\r', '\n'}; + private static final byte[] DASHDASH = {'-', '-'}; public static final String MULTIPART_MIXED = "multipart/mixed"; public static final String MULTIPART_X_MIXED_REPLACE = "multipart/x-mixed-replace"; @@ -71,11 +71,11 @@ public void close() try { if (inPart) - out.write(__CRLF); - out.write(__DASHDASH); + out.write(CRLF); + out.write(DASHDASH); out.write(boundaryBytes); - out.write(__DASHDASH); - out.write(__CRLF); + out.write(DASHDASH); + out.write(CRLF); inPart = false; } finally @@ -104,15 +104,19 @@ public void startPart(String contentType) throws IOException { if (inPart) - out.write(__CRLF); + { + out.write(CRLF); + } inPart = true; - out.write(__DASHDASH); + out.write(DASHDASH); out.write(boundaryBytes); - out.write(__CRLF); + out.write(CRLF); if (contentType != null) + { out.write(("Content-Type: " + contentType).getBytes(StandardCharsets.ISO_8859_1)); - out.write(__CRLF); - out.write(__CRLF); + out.write(CRLF); + } + out.write(CRLF); } /** @@ -126,20 +130,22 @@ public void startPart(String contentType, String[] headers) throws IOException { if (inPart) - out.write(__CRLF); + out.write(CRLF); inPart = true; - out.write(__DASHDASH); + out.write(DASHDASH); out.write(boundaryBytes); - out.write(__CRLF); + out.write(CRLF); if (contentType != null) + { out.write(("Content-Type: " + contentType).getBytes(StandardCharsets.ISO_8859_1)); - out.write(__CRLF); + out.write(CRLF); + } for (int i = 0; headers != null && i < headers.length; i++) { out.write(headers[i].getBytes(StandardCharsets.ISO_8859_1)); - out.write(__CRLF); + out.write(CRLF); } - out.write(__CRLF); + out.write(CRLF); } @Override @@ -148,7 +154,3 @@ public void write(byte[] b, int off, int len) throws IOException out.write(b, off, len); } } - - - -