aharvey                                  Tue, 23 Nov 2010 10:34:44 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=305686

Log:
Fix bug #53377 (imap_mime_header_decode() doesn't ignore \t during long MIME
header unfolding).

Bug: http://bugs.php.net/53377 (error getting bug information)
      
Changed paths:
    U   php/php-src/trunk/ext/imap/php_imap.c
    A   php/php-src/trunk/ext/imap/tests/bug53377.phpt

Modified: php/php-src/trunk/ext/imap/php_imap.c
===================================================================
--- php/php-src/trunk/ext/imap/php_imap.c       2010-11-23 10:22:34 UTC (rev 
305685)
+++ php/php-src/trunk/ext/imap/php_imap.c       2010-11-23 10:34:44 UTC (rev 
305686)
@@ -4235,7 +4235,7 @@
                                        }

                                        offset = end_token+2;
-                                       for (i = 0; (string[offset + i] == ' ') 
|| (string[offset + i] == 0x0a) || (string[offset + i] == 0x0d); i++);
+                                       for (i = 0; (string[offset + i] == ' ') 
|| (string[offset + i] == 0x0a) || (string[offset + i] == 0x0d) || 
(string[offset + i] == '\t'); i++);
                                        if ((string[offset + i] == '=') && 
(string[offset + i + 1] == '?') && (offset + i < end)) {
                                                offset += i;
                                        }

Added: php/php-src/trunk/ext/imap/tests/bug53377.phpt
===================================================================
--- php/php-src/trunk/ext/imap/tests/bug53377.phpt                              
(rev 0)
+++ php/php-src/trunk/ext/imap/tests/bug53377.phpt      2010-11-23 10:34:44 UTC 
(rev 305686)
@@ -0,0 +1,38 @@
+--TEST--
+Bug #53377 (imap_mime_header_decode() doesn't ignore \t during long MIME 
header unfolding)
+--SKIPIF--
+<?php
+        if (!extension_loaded("imap")) {
+                die("skip imap extension not available");
+        }
+?>
+--FILE--
+<?php
+$s = "=?UTF-8?Q?=E2=82=AC?=";
+$header = "$s\n $s\n\t$s";
+
+var_dump(imap_mime_header_decode($header));
+--EXPECT--
+array(3) {
+  [0]=>
+  object(stdClass)#1 (2) {
+    ["charset"]=>
+    string(5) "UTF-8"
+    ["text"]=>
+    string(3) "€"
+  }
+  [1]=>
+  object(stdClass)#2 (2) {
+    ["charset"]=>
+    string(5) "UTF-8"
+    ["text"]=>
+    string(3) "€"
+  }
+  [2]=>
+  object(stdClass)#3 (2) {
+    ["charset"]=>
+    string(5) "UTF-8"
+    ["text"]=>
+    string(3) "€"
+  }
+}

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to