diff options
| author | Kalle Sommer Nielsen <kalle@php.net> | 2010-12-13 09:52:05 +0000 |
|---|---|---|
| committer | Kalle Sommer Nielsen <kalle@php.net> | 2010-12-13 09:52:05 +0000 |
| commit | 1081bd1528982d7bea4af0722c932b0af4f0d18a (patch) | |
| tree | 676707b3fbec44182eb3effde430b1d9c976d84d /ext | |
| parent | 91ad5e73696eb08432c14c47fa8e66e40cc2263c (diff) | |
| download | php-git-1081bd1528982d7bea4af0722c932b0af4f0d18a.tar.gz | |
Fixed bug #53493 (xmlrpc_decode should not be sensitive to leading whitespace)
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/xmlrpc/tests/bug53493.phpt | 15 | ||||
| -rw-r--r-- | ext/xmlrpc/xmlrpc-epi-php.c | 6 |
2 files changed, 20 insertions, 1 deletions
diff --git a/ext/xmlrpc/tests/bug53493.phpt b/ext/xmlrpc/tests/bug53493.phpt new file mode 100644 index 0000000000..29309241f8 --- /dev/null +++ b/ext/xmlrpc/tests/bug53493.phpt @@ -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
diff --git a/ext/xmlrpc/xmlrpc-epi-php.c b/ext/xmlrpc/xmlrpc-epi-php.c index 823b8eb3a2..8c0ec6c86f 100644 --- a/ext/xmlrpc/xmlrpc-epi-php.c +++ b/ext/xmlrpc/xmlrpc-epi-php.c @@ -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 @@ PHP_FUNCTION(xmlrpc_decode) } 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); |
