From 58087a0a857da30cd7381744df07fdcf860179f0 Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Tue, 2 Dec 2008 15:10:13 -0700 Subject: [PATCH] Fix MIME parameter escaping. --- framework/Mime/lib/Horde/Mime/Headers.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/framework/Mime/lib/Horde/Mime/Headers.php b/framework/Mime/lib/Horde/Mime/Headers.php index 5da47aae4..2622fa19a 100644 --- a/framework/Mime/lib/Horde/Mime/Headers.php +++ b/framework/Mime/lib/Horde/Mime/Headers.php @@ -75,10 +75,12 @@ class Horde_Mime_Headers $text = $val[$key]; foreach ($ob['params'] as $name => $param) { foreach (Horde_Mime::encodeParam($name, $param, $charset) as $name2 => $param2) { - /* MIME parameter quoting is identical to RFC 822 - * quoted-string encoding. See RFC 2045 [Appendix - * A]. */ - $text .= '; ' . $name2 . '=' . Horde_Mime_Address::encode($param2, null); + /* Escape certain characters in params (See RFC + * 2045 [Appendix A]. */ + if (strcspn($param2, "\11\40\"(),/:;<=>?@[\\]") != strlen($param2)) { + $param2 = '"' . addcslashes($param2, '\\"') . '"'; + } + $text .= '; ' . $name2 . '=' . $param2; } } } else { -- 2.11.0