commit | 28c4b9626a340a770a4ff02fa8536ff7877296f3 | [log] [tgz] |
---|---|---|
author | Sebastian Bazley <sebb@apache.org> | Wed Mar 20 16:31:16 2013 +0000 |
committer | Sebastian Bazley <sebb@apache.org> | Wed Mar 20 16:31:16 2013 +0000 |
tree | 11f36e54f371b4f73ffb3889dadd97259be68a74 | |
parent | 23266a9bad47c29f5238ce53bd81439cf174928f [diff] |
Detect truncated input git-svn-id: https://svn.apache.org/repos/asf/commons/proper/fileupload/trunk@1458928 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java b/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java index f151c96..98bb54a 100644 --- a/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java +++ b/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java
@@ -135,6 +135,8 @@ outLen++; } } + } else if (cachedBytes != 0){ + throw new IOException("Invalid Base64 input: truncated"); } return outLen; }
diff --git a/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java b/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java index 94e0b8c..a58ed99 100644 --- a/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java +++ b/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java
@@ -89,4 +89,10 @@ Base64Decoder.decode(x, new ByteArrayOutputStream()); } + @Test(expected = IOException.class) + public void truncatedString() throws Exception { + final byte[] x = new byte[]{'n'}; + Base64Decoder.decode(x, new ByteArrayOutputStream()); + } + }