Explorar o código

Encoded From headers now properly quoted (#2830141). A better fix might be to re-write encodeHeader()

pdontthink %!s(int64=15) %!d(string=hai) anos
pai
achega
83236fcc19
Modificáronse 4 ficheiros con 6 adicións e 4 borrados
  1. 2 2
      class/mime/AddressStructure.class.php
  2. 1 0
      doc/ChangeLog
  3. 2 2
      functions/identity.php
  4. 1 0
      functions/mime.php

+ 2 - 2
class/mime/AddressStructure.class.php

@@ -65,9 +65,9 @@ class AddressStructure {
             }
             if ($personal) {
                 if ($encoded && !$is_encoded) {
-                    $personal_encoded = encodeHeader($personal);
+                    $personal_encoded = encodeHeader('"' . $personal . '"');
                     if ($personal !== $personal_encoded) {
-                        $personal = '"' . $personal_encoded . '"';
+                        $personal = $personal_encoded;
                     } else {
                         $personal = '"' . $this->personal . '"';
                     }

+ 1 - 0
doc/ChangeLog

@@ -330,6 +330,7 @@ Version 1.5.2 - SVN
     patch.
   - Make base URL autodetection more robust; fixes some lighttpd issues
     (probably #1741469).
+  - Encoded From headers now properly quoted (#2830141).
 
 Version 1.5.1 (branched on 2006-02-12)
 --------------------------------------

+ 2 - 2
functions/identity.php

@@ -241,9 +241,9 @@ function build_from_header($identity = 0) {
         $from_mail .= '@' . $domain;
     
     if ( isset($from_name) ) {
-        $from_name_encoded = encodeHeader($from_name);
+        $from_name_encoded = encodeHeader('"' . $from_name . '"');
         if ($from_name_encoded != $from_name) {
-            return '"' . $from_name_encoded . '" <' . $from_mail . '>';
+            return $from_name_encoded . ' <' . $from_mail . '>';
         }
         return '"' . $from_name . '" <' . $from_mail . '>';
     }

+ 1 - 0
functions/mime.php

@@ -958,6 +958,7 @@ function encodeHeader ($string) {
     for($i = 0; $i < $j; ++$i) {
         switch($string{$i})
         {
+            case '"':
             case '=':
             case '<':
             case '>':