kalle                                    Mon, 13 Dec 2010 09:52:05 +0000

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

Log:
Fixed bug #53493 (xmlrpc_decode should not be sensitive to leading whitespace)

Bug: http://bugs.php.net/53493 (Assigned) xmlrpc_decode should not be sensitive 
to leading whitespace
      
Changed paths:
    U   php/php-src/branches/PHP_5_3/NEWS
    A   php/php-src/branches/PHP_5_3/ext/xmlrpc/tests/bug53493.phpt
    U   php/php-src/branches/PHP_5_3/ext/xmlrpc/xmlrpc-epi-php.c
    A   php/php-src/trunk/ext/xmlrpc/tests/bug53493.phpt
    U   php/php-src/trunk/ext/xmlrpc/xmlrpc-epi-php.c

Modified: php/php-src/branches/PHP_5_3/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3/NEWS   2010-12-13 09:04:07 UTC (rev 306338)
+++ php/php-src/branches/PHP_5_3/NEWS   2010-12-13 09:52:05 UTC (rev 306339)
@@ -51,6 +51,10 @@
 - Streams:
   . Implemented FR #26158 (open arbitrary file descriptor with fopen). 
(Gustavo)

+- XMLRPC-EPI:
+  . Fixed bug #53493 (xmlrpc_decode should not be sensitive to leading
+    whitespace). (Kalle)
+
 09 Dec 2010, PHP 5.3.4
 - Upgraded bundled Sqlite3 to version 3.7.3. (Ilia)
 - Upgraded bundled PCRE to version 8.10. (Ilia)

Added: php/php-src/branches/PHP_5_3/ext/xmlrpc/tests/bug53493.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/xmlrpc/tests/bug53493.phpt                 
        (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/xmlrpc/tests/bug53493.phpt 2010-12-13 
09:52:05 UTC (rev 306339)
@@ -0,0 +1,15 @@
+--TEST--
+Bug #53493 (xmlrpc_decode should not be sensitive to leading whitespace)
+--FILE--
+<?php
+$req =                 PHP_EOL .
+               '<?xml version="1.0"?><methodResponse><params><param>' .
+               '<value><string>Hello World</string></value></param>' .
+               '</params></methodResponse>';
+
+var_dump(xmlrpc_decode($req));
+echo "Done\n";
+?>
+--EXPECT--
+string(11) "Hello World"
+Done

Modified: php/php-src/branches/PHP_5_3/ext/xmlrpc/xmlrpc-epi-php.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/xmlrpc/xmlrpc-epi-php.c    2010-12-13 
09:04:07 UTC (rev 306338)
+++ php/php-src/branches/PHP_5_3/ext/xmlrpc/xmlrpc-epi-php.c    2010-12-13 
09:52:05 UTC (rev 306339)
@@ -67,6 +67,7 @@

 #include "php.h"
 #include "ext/standard/info.h"
+#include "ext/standard/php_string.h"
 #include "ext/date/php_date.h"
 #include "php_ini.h"
 #include "php_xmlrpc.h"
@@ -844,7 +845,10 @@
        }

        if (return_value_used) {
-               zval* retval = decode_request_worker(arg1, arg1_len, arg2_len ? 
arg2 : NULL, NULL);
+               zval* retval;
+               char *trimmed = php_trim(arg1, arg1_len, NULL, 0, NULL, 1 
TSRMLS_CC);
+
+               retval = decode_request_worker(trimmed, strlen(trimmed), 
arg2_len ? arg2 : NULL, NULL);
                if (retval) {
                        *return_value = *retval;
                        FREE_ZVAL(retval);

Added: php/php-src/trunk/ext/xmlrpc/tests/bug53493.phpt
===================================================================
--- php/php-src/trunk/ext/xmlrpc/tests/bug53493.phpt                            
(rev 0)
+++ php/php-src/trunk/ext/xmlrpc/tests/bug53493.phpt    2010-12-13 09:52:05 UTC 
(rev 306339)
@@ -0,0 +1,15 @@
+--TEST--
+Bug #53493 (xmlrpc_decode should not be sensitive to leading whitespace)
+--FILE--
+<?php
+$req =                 PHP_EOL .
+               '<?xml version="1.0"?><methodResponse><params><param>' .
+               '<value><string>Hello World</string></value></param>' .
+               '</params></methodResponse>';
+
+var_dump(xmlrpc_decode($req));
+echo "Done\n";
+?>
+--EXPECT--
+string(11) "Hello World"
+Done

Modified: php/php-src/trunk/ext/xmlrpc/xmlrpc-epi-php.c
===================================================================
--- php/php-src/trunk/ext/xmlrpc/xmlrpc-epi-php.c       2010-12-13 09:04:07 UTC 
(rev 306338)
+++ php/php-src/trunk/ext/xmlrpc/xmlrpc-epi-php.c       2010-12-13 09:52:05 UTC 
(rev 306339)
@@ -67,6 +67,7 @@

 #include "php.h"
 #include "ext/standard/info.h"
+#include "ext/standard/php_string.h"
 #include "ext/date/php_date.h"
 #include "php_ini.h"
 #include "php_xmlrpc.h"
@@ -844,7 +845,10 @@
        }

        if (return_value_used) {
-               zval* retval = decode_request_worker(arg1, arg1_len, arg2_len ? 
arg2 : NULL, NULL);
+               zval* retval;
+               char *trimmed = php_trim(arg1, arg1_len, NULL, 0, NULL, 1 
TSRMLS_CC);
+
+               retval = decode_request_worker(trimmed, strlen(trimmed), 
arg2_len ? arg2 : NULL, NULL);
                if (retval) {
                        *return_value = *retval;
                        FREE_ZVAL(retval);

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

Reply via email to