You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2023/04/19 01:25:48 UTC
[james-mime4j] 01/02: MIME4J-324 Handle URL parsing exception in LenientContentDispositionField
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-mime4j.git
commit 8f72ae5ae442427f84e561793396f3b52eb09f48
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Apr 18 09:20:39 2023 +0700
MIME4J-324 Handle URL parsing exception in LenientContentDispositionField
---
.../org/apache/james/mime4j/util/MimeParameterMapping.java | 5 ++---
.../apache/james/mime4j/field/ContentDispositionFieldTest.java | 2 +-
.../james/mime4j/field/LenientContentDispositionFieldTest.java | 10 ++++++++++
3 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/core/src/main/java/org/apache/james/mime4j/util/MimeParameterMapping.java b/core/src/main/java/org/apache/james/mime4j/util/MimeParameterMapping.java
index 1e98ac4d..a3ffd44e 100644
--- a/core/src/main/java/org/apache/james/mime4j/util/MimeParameterMapping.java
+++ b/core/src/main/java/org/apache/james/mime4j/util/MimeParameterMapping.java
@@ -19,7 +19,6 @@
package org.apache.james.mime4j.util;
-import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
@@ -54,9 +53,9 @@ public class MimeParameterMapping {
try {
return java.net.URLDecoder.decode(fileName, charset);
}
- catch (UnsupportedEncodingException ignore) {
+ catch (Exception ignore) {
+ return fileName;
}
- return MimeUtil.unscrambleHeaderValue(value);
}
private String removeSectionFromName(String parameterName) {
diff --git a/dom/src/test/java/org/apache/james/mime4j/field/ContentDispositionFieldTest.java b/dom/src/test/java/org/apache/james/mime4j/field/ContentDispositionFieldTest.java
index 13326e24..fb1fb534 100644
--- a/dom/src/test/java/org/apache/james/mime4j/field/ContentDispositionFieldTest.java
+++ b/dom/src/test/java/org/apache/james/mime4j/field/ContentDispositionFieldTest.java
@@ -138,7 +138,7 @@ public class ContentDispositionFieldTest extends TestCase {
" \nfilename*=%s\"", fileName);
ContentDispositionField f = parse(fileNameString);
String name = f.getFilename();
- assertEquals(getMessage(f), fileName, name);
+ assertEquals(getMessage(f), "%D8%AF%D9%8A%D9%86%D8%A7%D8%B5%D9%88%D8%B1%2E%6F%64%74", name);
}
public void testFileNameWithInitialSection() throws MimeException {
diff --git a/dom/src/test/java/org/apache/james/mime4j/field/LenientContentDispositionFieldTest.java b/dom/src/test/java/org/apache/james/mime4j/field/LenientContentDispositionFieldTest.java
index 67df4c5c..1031da71 100644
--- a/dom/src/test/java/org/apache/james/mime4j/field/LenientContentDispositionFieldTest.java
+++ b/dom/src/test/java/org/apache/james/mime4j/field/LenientContentDispositionFieldTest.java
@@ -197,4 +197,14 @@ public class LenientContentDispositionFieldTest {
f.getFilename());
}
+ @Test
+ public void testBadEncodingFilename() throws MimeException {
+ ContentDispositionField f = parse("Content-Disposition: attachment; \n" +
+ " filename*=utf-8''4%P001!.DOC;\n" +
+ " filename=\"4%P001!.DOC\"");
+
+ Assert.assertEquals(f.getDispositionType(), "attachment");
+ Assert.assertEquals(f.getFilename(), "4%P001!.DOC4%P001!.DOC");
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org