felipe          Fri Jul 11 12:43:06 2008 UTC

  Modified files:              
    /php-src/ext/standard       string.c 
    /php-src/ext/standard/tests/strings bug45485.phpt 
  Log:
  - MFB: Fixed bug #45485 (strip_tags and <?XML tag)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/string.c?r1=1.674&r2=1.675&diff_format=u
Index: php-src/ext/standard/string.c
diff -u php-src/ext/standard/string.c:1.674 php-src/ext/standard/string.c:1.675
--- php-src/ext/standard/string.c:1.674 Tue May 27 10:28:25 2008
+++ php-src/ext/standard/string.c       Fri Jul 11 12:43:06 2008
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: string.c,v 1.674 2008/05/27 10:28:25 mattwil Exp $ */
+/* $Id: string.c,v 1.675 2008/07/11 12:43:06 felipe Exp $ */
 
 /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
 
@@ -6623,12 +6623,13 @@
                        /* fall-through */
 
                case 'l':
+               case 'L':
 
                        /* swm: If we encounter '<?xml' then we shouldn't be in
                         * state == 2 (PHP). Switch back to HTML.
                         */
 
-                       if (state == 2 && codepts > 2 && prev1 == 'm' && prev2 
== 'x') {
+                       if (state == 2 && codepts > 2 && (prev1 == 'm' || prev1 
== 'M') && (prev2 == 'x' || prev2 == 'X')) {
                                state = 1;
                                break;
                        }
@@ -6859,12 +6860,13 @@
                                /* fall-through */
 
                        case 'l':
+                       case 'L':
 
                                /* swm: If we encounter '<?xml' then we 
shouldn't be in
                                 * state == 2 (PHP). Switch back to HTML.
                                 */
 
-                               if (state == 2 && p > buf+2 && *(p-1) == 'm' && 
*(p-2) == 'x') {
+                               if (state == 2 && p > buf+2 && strncasecmp(p-2, 
"xm", 2) == 0) {
                                        state = 1;
                                        break;
                                }
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/bug45485.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/strings/bug45485.phpt
diff -u /dev/null php-src/ext/standard/tests/strings/bug45485.phpt:1.2
--- /dev/null   Fri Jul 11 12:43:06 2008
+++ php-src/ext/standard/tests/strings/bug45485.phpt    Fri Jul 11 12:43:06 2008
@@ -0,0 +1,23 @@
+--TEST--
+Bug #45485 (strip_tags and <?XML tag)
+--FILE--
+<?php
+
+$s =<<< EOD
+This text is shown <?XML:NAMESPACE PREFIX = ST1 /><b>This Text disappears</b>
+EOD;
+
+$s = strip_tags($s);
+echo htmlspecialchars($s),"\n";
+
+$s =<<< EOD
+This text is shown <?xml:NAMESPACE PREFIX = ST1 /><b>This Text disappears</b>
+EOD;
+
+$s = strip_tags($s);
+echo htmlspecialchars($s),"\n";
+
+?>
+--EXPECT--
+This text is shown This Text disappears
+This text is shown This Text disappears



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

Reply via email to