[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2009-05-22 Thread Felipe Pena
felipe  Fri May 22 12:49:22 2009 UTC

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  - Fixed invalid date checking
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.72r2=1.73diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.72 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.73
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.72Tue May 19 16:32:22 2009
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Fri May 22 12:49:22 2009
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.72 2009/05/19 16:32:22 kalle Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.73 2009/05/22 12:49:22 felipe Exp $ */
 
 /**
 * BUGS:   *
@@ -1352,7 +1352,7 @@
XMLRPC_VALUE v = 
XMLRPC_CreateValueDateTime_ISO8601(NULL, value-value.str.val);
if (v) {
time_t timestamp = (time_t) 
php_parse_date((char *)XMLRPC_GetValueDateTime_ISO8601(v), NULL);
-   if (timestamp) {
+   if (timestamp != -1) {
zval* ztimestamp;
 
MAKE_STD_ZVAL(ztimestamp);



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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2009-05-14 Thread Ilia Alshanetsky
iliaa   Thu May 14 12:30:06 2009 UTC

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  
  MFB: Fixed compiler warnings
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.70r2=1.71diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.70 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.71
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.70Wed May 13 14:23:29 2009
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Thu May 14 12:30:06 2009
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.70 2009/05/13 14:23:29 iliaa Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.71 2009/05/14 12:30:06 iliaa Exp $ */
 
 /**
 * BUGS:   *
@@ -67,6 +67,7 @@
 
 #include php.h
 #include ext/standard/info.h
+#include ext/date/php_date.h
 #include php_ini.h
 #include php_xmlrpc.h
 #include xmlrpc.h
@@ -1350,7 +1351,7 @@
if (newtype == xmlrpc_datetime) {
XMLRPC_VALUE v = 
XMLRPC_CreateValueDateTime_ISO8601(NULL, value-value.str.val);
if (v) {
-   time_t timestamp = (time_t) 
php_parse_date(XMLRPC_GetValueDateTime_ISO8601(v), NULL);
+   time_t timestamp = (time_t) 
php_parse_date((char *)XMLRPC_GetValueDateTime_ISO8601(v), NULL);
if (timestamp) {
zval* ztimestamp;
 



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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2009-05-13 Thread Ilia Alshanetsky
iliaa   Wed May 13 14:23:29 2009 UTC

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  
  MFB: Fixed bug #44996 (xmlrpc_decode() ignores time zone on
  iso8601.datetime)
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.69r2=1.70diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.69 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.70
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.69Thu Apr  2 15:52:26 2009
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Wed May 13 14:23:29 2009
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.69 2009/04/02 15:52:26 felipe Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.70 2009/05/13 14:23:29 iliaa Exp $ */
 
 /**
 * BUGS:   *
@@ -1350,8 +1350,8 @@
if (newtype == xmlrpc_datetime) {
XMLRPC_VALUE v = 
XMLRPC_CreateValueDateTime_ISO8601(NULL, value-value.str.val);
if (v) {
-   time_t timestamp = 
XMLRPC_GetValueDateTime(v);
-   if (timestamp) {
+   time_t timestamp = (time_t) 
php_parse_date(XMLRPC_GetValueDateTime_ISO8601(v), NULL);
+   if (timestamp) {
zval* ztimestamp;
 
MAKE_STD_ZVAL(ztimestamp);



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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c /ext/xmlrpc/tests bug47818.phpt

2009-04-02 Thread Felipe Pena
felipe  Thu Apr  2 15:52:26 2009 UTC

  Added files: 
/php-src/ext/xmlrpc/tests   bug47818.phpt 

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  - Fixed bug #47818 (Segfault due to bound callback param)
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.68r2=1.69diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.68 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.69
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.68Thu Mar 19 00:19:20 2009
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Thu Apr  2 15:52:26 2009
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.68 2009/03/19 00:19:20 iliaa Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.69 2009/04/02 15:52:26 felipe Exp $ */
 
 /**
 * BUGS:   *
@@ -1163,8 +1163,8 @@
}
 
/* cleanup after ourselves.  what a sty! */
-   zval_dtor(data.xmlrpc_method);
-   FREE_ZVAL(data.xmlrpc_method);
+   zval_ptr_dtor(data.xmlrpc_method);
+
zval_dtor(data.return_data);
FREE_ZVAL(data.return_data);
 

http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/tests/bug47818.phpt?view=markuprev=1.1
Index: php-src/ext/xmlrpc/tests/bug47818.phpt
+++ php-src/ext/xmlrpc/tests/bug47818.phpt
--TEST--
Bug #47818 (Segfault due to bound callback param)
--FILE--
?php

class MyXmlRpc {
private $s;
private $method;

function impl($method_name, $params, $user_data){
$this-method = $method_name;
print Inside impl(): {$this-method}\n;
return array_sum($params);
}

function __construct() {
$this-s = xmlrpc_server_create();
xmlrpc_server_register_method($this-s, 'add', array($this, 'impl'));
}

function call($req) {
return xmlrpc_server_call_method($this-s, $req, null);
}

function getMethod() {return $this-method;}

}

$x = new MyXmlRpc;
$resp = $x-call(xmlrpc_encode_request('add', array(1, 2, 3)));

$method = $x-getMethod();

print Global scope: $method\n;

?
--EXPECTF--
Inside impl(): add
Global scope: add



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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2009-03-18 Thread Ilia Alshanetsky
iliaa   Thu Mar 19 00:19:20 2009 UTC

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  
  MFB:Improved parameter parsing
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.67r2=1.68diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.67 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.68
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.67Tue Mar 10 23:39:52 2009
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Thu Mar 19 00:19:20 2009
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.67 2009/03/10 23:39:52 helly Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.68 2009/03/19 00:19:20 iliaa Exp $ */
 
 /**
 * BUGS:   *
@@ -687,14 +687,14 @@
 {
XMLRPC_REQUEST xRequest = NULL;
char *outBuf;
-   zval **method, **vals, *out_opts;
+   zval **method, **vals, *out_opts = NULL;
php_output_options out;
 
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, ZZ|a, method, 
vals, out_opts) == FAILURE) {
return;
}
 
-   set_output_options(out, (ZEND_NUM_ARGS() == 3) ? out_opts : 0);
+   set_output_options(out, out_opts ? out_opts : 0);
 
if (return_value_used) {
xRequest = XMLRPC_RequestNew();



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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2008-12-27 Thread Felipe Pena
felipe  Sat Dec 27 19:06:19 2008 UTC

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  - Fixed code (comparison with string literal)
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.64r2=1.65diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.64 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.65
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.64Mon Nov 17 11:26:24 2008
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Sat Dec 27 19:06:19 2008
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.64 2008/11/17 11:26:24 felipe Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.65 2008/12/27 19:06:19 felipe Exp $ */
 
 /**
 * BUGS:   *
@@ -721,7 +721,7 @@
}
}
 
-   if (out.xmlrpc_out.xml_elem_opts.encoding != ENCODING_DEFAULT) {
+   if (strcmp(out.xmlrpc_out.xml_elem_opts.encoding, ENCODING_DEFAULT) != 
0) {
efree((char *)out.xmlrpc_out.xml_elem_opts.encoding);
}
 }



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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2008-08-23 Thread Felipe Pena
felipe  Sun Aug 24 00:45:20 2008 UTC

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  - MFB: New parameter parsing API
  - WS, Cosmetics
  
  http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.60r2=1.61diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.60 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.61
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.60Fri Aug 15 22:13:58 2008
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Sun Aug 24 00:45:20 2008
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.60 2008/08/15 22:13:58 felipe Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.61 2008/08/24 00:45:20 felipe Exp $ */
 
 /**
 * BUGS:   *
@@ -265,7 +265,7 @@
 XMLRPC_VALUE_TYPE get_zval_xmlrpc_type(zval* value, zval** newvalue);
 static void php_xmlrpc_introspection_callback(XMLRPC_SERVER server, void* 
data);
 int sset_zval_xmlrpc_type(zval* value, XMLRPC_VALUE_TYPE type);
-zval* decode_request_worker(zval* xml_in, zval* encoding_in, zval* 
method_name_out);
+zval* decode_request_worker(char *xml_in, int xml_in_len, char *encoding_in, 
zval* method_name_out);
 const char* xmlrpc_type_as_str(XMLRPC_VALUE_TYPE type, XMLRPC_VECTOR_TYPE 
vtype);
 XMLRPC_VALUE_TYPE xmlrpc_str_as_type(const char* str);
 XMLRPC_VECTOR_TYPE xmlrpc_str_as_vector_type(const char* str);
@@ -437,29 +437,29 @@
}
 
/* encoding code set */
-   if(zend_hash_find(Z_ARRVAL_P(output_opts), 
ENCODING_KEY, ENCODING_KEY_LEN + 1, (void**)val) == SUCCESS) {
-   if(Z_TYPE_PP(val) == IS_STRING) {
+   if (zend_hash_find(Z_ARRVAL_P(output_opts), 
ENCODING_KEY, ENCODING_KEY_LEN + 1, (void**)val) == SUCCESS) {
+   if (Z_TYPE_PP(val) == IS_STRING) {

options-xmlrpc_out.xml_elem_opts.encoding = estrdup(Z_STRVAL_PP(val));
}
}
 
/* escaping options */
-   if(zend_hash_find(Z_ARRVAL_P(output_opts), 
ESCAPING_KEY, ESCAPING_KEY_LEN + 1, (void**)val) == SUCCESS) {
+   if (zend_hash_find(Z_ARRVAL_P(output_opts), 
ESCAPING_KEY, ESCAPING_KEY_LEN + 1, (void**)val) == SUCCESS) {
/* multiple values allowed.  check if array */
-   if(Z_TYPE_PP(val) == IS_ARRAY) {
+   if (Z_TYPE_PP(val) == IS_ARRAY) {
zval** iter_val;

zend_hash_internal_pointer_reset(Z_ARRVAL_PP(val));

options-xmlrpc_out.xml_elem_opts.escaping = xml_elem_no_escaping;
-   while(1) {
-   
if(zend_hash_get_current_data(Z_ARRVAL_PP(val), (void**)iter_val) == SUCCESS) {
-   if(Z_TYPE_PP(iter_val) 
== IS_STRING  Z_STRVAL_PP(iter_val)) {
-   
if(!strcmp(Z_STRVAL_PP(iter_val), ESCAPING_VALUE_CDATA)) {
+   while (1) {
+   if 
(zend_hash_get_current_data(Z_ARRVAL_PP(val), (void**)iter_val) == SUCCESS) {
+   if (Z_TYPE_PP(iter_val) 
== IS_STRING  Z_STRVAL_PP(iter_val)) {
+   if 
(!strcmp(Z_STRVAL_PP(iter_val), ESCAPING_VALUE_CDATA)) {

options-xmlrpc_out.xml_elem_opts.escaping |= xml_elem_cdata_escaping;
-   } else 
if(!strcmp(Z_STRVAL_PP(iter_val), ESCAPING_VALUE_NON_ASCII)) {
+   } else if 
(!strcmp(Z_STRVAL_PP(iter_val), ESCAPING_VALUE_NON_ASCII)) {

options-xmlrpc_out.xml_elem_opts.escaping |= xml_elem_non_ascii_escaping;
-   } else 
if(!strcmp(Z_STRVAL_PP(iter_val), ESCAPING_VALUE_NON_PRINT)) {
+   } else if 
(!strcmp(Z_STRVAL_PP(iter_val), ESCAPING_VALUE_NON_PRINT)) {

options-xmlrpc_out.xml_elem_opts.escaping |= xml_elem_non_print_escaping;
-   } else 
if(!strcmp(Z_STRVAL_PP(iter_val), ESCAPING_VALUE_MARKUP)) {
+

[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2008-08-15 Thread Felipe Pena
felipe  Fri Aug 15 22:13:59 2008 UTC

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  - Fix build
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.59r2=1.60diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.59 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.60
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.59Sat Aug  2 04:40:45 2008
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Fri Aug 15 22:13:58 2008
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.59 2008/08/02 04:40:45 felipe Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.60 2008/08/15 22:13:58 felipe Exp $ */
 
 /**
 * BUGS:   *
@@ -275,7 +275,7 @@
 * startup / shutdown *
 */
 
-static void destroy_server_data(xmlrpc_server_data *server) /* {{{ */
+static void destroy_server_data(xmlrpc_server_data *server TSRMLS_DC) /* {{{ */
 {
if (server) {
XMLRPC_ServerDestroy(server-server_ptr);
@@ -296,7 +296,7 @@
 static void xmlrpc_server_destructor(zend_rsrc_list_entry *rsrc TSRMLS_DC) /* 
{{{ */
 {
if (rsrc  rsrc-ptr) {
-   destroy_server_data((xmlrpc_server_data*) rsrc-ptr);
+   destroy_server_data((xmlrpc_server_data*) rsrc-ptr TSRMLS_CC);
}
 }
 /* }}} */



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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c /ext/xmlrpc/tests bug45555.phpt bug45556.phpt

2008-07-20 Thread Felipe Pena
felipe  Sun Jul 20 15:52:07 2008 UTC

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
/php-src/ext/xmlrpc/tests   bug4.phpt bug45556.phpt 
  Log:
  MFB:
  - Fixed bug #45556 (Return value from callback isn't freed).
  - Fixed bug #4 (Segfault with invalid non-string as 
register_introspection_callback).
  - Fixed wrong arginfo for xmlrpc_encode_request()
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.57r2=1.58diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.57 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.58
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.57Mon Jun 30 13:47:22 2008
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Sun Jul 20 15:52:06 2008
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.57 2008/06/30 13:47:22 felipe Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.58 2008/07/20 15:52:06 felipe Exp $ */
 
 /**
 * BUGS:   *
@@ -97,7 +97,7 @@
 static
 ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_encode_request, 0, 0, 2)
ZEND_ARG_INFO(0, method)
-   ZEND_ARG_INFO(1, params)
+   ZEND_ARG_INFO(0, params)
ZEND_ARG_INFO(0, output_options)
 ZEND_END_ARG_INFO()
 
@@ -951,58 +951,54 @@
  */
 static void php_xmlrpc_introspection_callback(XMLRPC_SERVER server, void* 
data) /* {{{ */
 {
-   zval *retval_ptr, **php_function;
+   zval retval, **php_function;
zval* callback_params[1];
+   zval php_function_name;
xmlrpc_callback_data* pData = (xmlrpc_callback_data*)data;
TSRMLS_FETCH();
 
-   MAKE_STD_ZVAL(retval_ptr);
-   Z_TYPE_P(retval_ptr) = IS_NULL;
-
/* setup data hoojum */
callback_params[0] = pData-caller_params;
 
/* loop through and call all registered callbacks */

zend_hash_internal_pointer_reset(Z_ARRVAL_P(pData-server-introspection_map));
while(1) {
-   
if(zend_hash_get_current_data(Z_ARRVAL_P(pData-server-introspection_map), 
-   (void**)php_function) == SUCCESS) {
-
-   /* php func prototype: function string 
user_func($user_params) */
-   if(call_user_function(CG(function_table), NULL, 
*php_function, 
-   retval_ptr, 1, callback_params 
TSRMLS_CC) == SUCCESS) {
-   XMLRPC_VALUE xData;
-   STRUCT_XMLRPC_ERROR err = {0};
-
-   /* return value should be a string */
-   convert_to_string(retval_ptr);
-
-   xData = 
XMLRPC_IntrospectionCreateDescription(Z_STRVAL_P(retval_ptr), err);
-
-   if(xData) {
-   
if(!XMLRPC_ServerAddIntrospectionData(server, xData)) {
-   php_error_docref(NULL 
TSRMLS_CC, E_WARNING, Unable to add introspection data returned from %s(), 
improper element structure, Z_STRVAL_PP(php_function));
-   }
-   XMLRPC_CleanupValue(xData);
-   }
-   else {
-   /* could not create description */
-   if(err.xml_elem_error.parser_code) {
-   php_error_docref(NULL 
TSRMLS_CC, E_WARNING, xml parse error: [line %ld, column %ld, message: %s] 
Unable to add introspection data returned from %s(), 
-   
err.xml_elem_error.column, err.xml_elem_error.line, 
err.xml_elem_error.parser_error, Z_STRVAL_PP(php_function));
-   }
-   else {
-   php_error_docref(NULL 
TSRMLS_CC, E_WARNING, Unable to add introspection data returned from %s(), 
-   
Z_STRVAL_PP(php_function));
+   
if(zend_hash_get_current_data(Z_ARRVAL_P(pData-server-introspection_map), 
(void**)php_function) == SUCCESS) {
+   if (zend_is_callable(*php_function, 0, 
php_function_name)) {
+   /* php func prototype: function string 
user_func($user_params) */
+   if (call_user_function(CG(function_table), 
NULL, *php_function, retval, 1, callback_params TSRMLS_CC) == SUCCESS) {
+   XMLRPC_VALUE xData;
+   STRUCT_XMLRPC_ERROR err = {0};
+
+   /* return value should be a string */
+   

[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2008-06-28 Thread Felipe Pena
felipe  Sat Jun 28 22:19:24 2008 UTC

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  - MFB: Added arginfo
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.55r2=1.56diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.55 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.56
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.55Thu Feb 28 14:16:25 2008
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Sat Jun 28 22:19:24 2008
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.55 2008/02/28 14:16:25 felipe Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.56 2008/06/28 22:19:24 felipe Exp $ */
 
 /**
 * BUGS:   *
@@ -75,21 +75,100 @@
 
 static int le_xmlrpc_server;
 
+/* {{{ arginfo */
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_encode, 0, 0, 1)
+   ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_decode, 0, 0, 1)
+   ZEND_ARG_INFO(0, value)
+   ZEND_ARG_INFO(0, encoding)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_decode_request, 0, 0, 2)
+   ZEND_ARG_INFO(0, xml)
+   ZEND_ARG_INFO(1, method)
+   ZEND_ARG_INFO(0, encoding)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_encode_request, 0, 0, 2)
+   ZEND_ARG_INFO(0, method)
+   ZEND_ARG_INFO(1, params)
+   ZEND_ARG_INFO(0, output_options)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_set_type, 0, 0, 2)
+   ZEND_ARG_INFO(1, value)
+   ZEND_ARG_INFO(0, type)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_is_fault, 0, 0, 1)
+   ZEND_ARG_INFO(0, arg)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO(arginfo_xmlrpc_server_create, 0)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_destroy, 0, 0, 1)
+   ZEND_ARG_INFO(0, server)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_register_method, 0, 0, 3)
+   ZEND_ARG_INFO(0, server)
+   ZEND_ARG_INFO(0, method_name)
+   ZEND_ARG_INFO(0, function)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_call_method, 0, 0, 3)
+   ZEND_ARG_INFO(0, server)
+   ZEND_ARG_INFO(0, xml)
+   ZEND_ARG_INFO(0, user_data)
+   ZEND_ARG_INFO(0, output_options)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_parse_method_descriptions, 0, 0, 1)
+   ZEND_ARG_INFO(0, xml)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_add_introspection_data, 0, 0, 2)
+   ZEND_ARG_INFO(0, server)
+   ZEND_ARG_INFO(0, desc)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_register_introspection_callback, 
0, 0, 2)
+   ZEND_ARG_INFO(0, server)
+   ZEND_ARG_INFO(0, function)
+ZEND_END_ARG_INFO()
+/* }}} */
+
 const zend_function_entry xmlrpc_functions[] = {
-   PHP_FE(xmlrpc_encode,   
NULL) 
-   PHP_FE(xmlrpc_decode,   
NULL)
-   PHP_FE(xmlrpc_decode_request,   
second_arg_force_ref)
-   PHP_FE(xmlrpc_encode_request,   
NULL)
-   PHP_FE(xmlrpc_get_type, 
NULL)
-   PHP_FE(xmlrpc_set_type, 
first_arg_force_ref)
-   PHP_FE(xmlrpc_is_fault, 
NULL)
-   PHP_FE(xmlrpc_server_create,
NULL)
-   PHP_FE(xmlrpc_server_destroy,   
NULL)
-   PHP_FE(xmlrpc_server_register_method,   
NULL)
-   PHP_FE(xmlrpc_server_call_method,   
NULL)
-   PHP_FE(xmlrpc_parse_method_descriptions,
NULL)
-   PHP_FE(xmlrpc_server_add_introspection_data,NULL)
-   PHP_FE(xmlrpc_server_register_introspection_callback,   NULL)
+   PHP_FE(xmlrpc_encode,   
arginfo_xmlrpc_encode) 
+   PHP_FE(xmlrpc_decode,   
arginfo_xmlrpc_decode)
+   PHP_FE(xmlrpc_decode_request,   
arginfo_xmlrpc_decode_request)
+   PHP_FE(xmlrpc_encode_request,   
arginfo_xmlrpc_encode_request)
+   

[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c /ext/xmlrpc/tests bug42736.phpt

2007-11-12 Thread Antony Dovgal
tony2001Mon Nov 12 11:22:00 2007 UTC

  Added files: 
/php-src/ext/xmlrpc/tests   bug42736.phpt 

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  fix #42736 (xmlrpc_server_call_method() crashes)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.52r2=1.53diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.52 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.53
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.52Thu Sep 27 18:28:43 2007
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Mon Nov 12 11:22:00 2007
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.52 2007/09/27 18:28:43 dmitry Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.53 2007/11/12 11:22:00 tony2001 Exp $ */
 
 /**
 * BUGS:   *
@@ -864,8 +864,7 @@
 
pData-php_executed = 1;
 
-   zval_dtor(xmlrpc_params);
-   FREE_ZVAL(xmlrpc_params);
+   zval_ptr_dtor(xmlrpc_params);
 
return NULL;
 }

http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/tests/bug42736.phpt?view=markuprev=1.1
Index: php-src/ext/xmlrpc/tests/bug42736.phpt
+++ php-src/ext/xmlrpc/tests/bug42736.phpt
--TEST--
Bug #42736 (xmlrpc_server_call_method() crashes)
--SKIPIF--
?php if (!extension_loaded(xmlrpc)) print skip; ?
--FILE--
?php

class SOAP_Array {
public function get($id){
return $this-add($id);
}
}

$xml = xmlrpc_server_create();

$Myrequest = '?xml version=1.0 
encoding=UTF-8?methodCallmethodNameGetProducts/methodNameparamsparamvaluedateTime.iso860120060922T14:26:19/dateTime.iso8601/value/param/params/methodCall';

class MyClass {
function GetProducts($dummy, $time){
return array('faultString' = $time);
}
}
$myclass =  new MyClass();
xmlrpc_server_register_method($xml, 'GetProducts', array($myclass, 
'GetProducts'));
$response = xmlrpc_server_call_method($xml, $Myrequest, null);

var_dump($response);

echo Done\n;
?
--EXPECTF-- 
string(402) ?xml version=1.0 encoding=iso-8859-1?
methodResponse
params
 param
  value
   struct
member
 namefaultString/name
 value
  array
   data
value
 dateTime.iso860120060922T14:26:19/dateTime.iso8601
/value
   /data
  /array
 /value
/member
   /struct
  /value
 /param
/params
/methodResponse

Done

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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c /ext/xmlrpc/libxmlrpc xmlrpc.c /ext/xmlrpc/tests bug42189.phpt

2007-09-18 Thread Ilia Alshanetsky
iliaa   Tue Sep 18 19:52:28 2007 UTC

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
/php-src/ext/xmlrpc/libxmlrpc   xmlrpc.c 
/php-src/ext/xmlrpc/tests   bug42189.phpt 
  Log:
  
  MFB: Fixed bug #42189 (xmlrpc_set_type() crashes php on invalid datetime
  values).
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.50r2=1.51diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.50 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.51
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.50Thu Jul 12 10:04:42 2007
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Tue Sep 18 19:52:27 2007
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.50 2007/07/12 10:04:42 tony2001 Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.51 2007/09/18 19:52:27 iliaa Exp $ */
 
 /**
 * BUGS:   *
@@ -1313,8 +1313,12 @@
if(SUCCESS == 
zend_hash_update(Z_OBJPROP_P(value), OBJECT_TYPE_ATTR, 
sizeof(OBJECT_TYPE_ATTR), (void *) type, sizeof(zval *), NULL)) {
bSuccess = 
zend_hash_update(Z_OBJPROP_P(value), OBJECT_VALUE_TS_ATTR, 
sizeof(OBJECT_VALUE_TS_ATTR), (void *) ztimestamp, sizeof(zval *), NULL);
}
+   } else {
+   zval_ptr_dtor(type);
}
XMLRPC_CleanupValue(v);
+   } else {
+   zval_ptr_dtor(type);
}
}
else {
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/libxmlrpc/xmlrpc.c?r1=1.11r2=1.12diff_format=u
Index: php-src/ext/xmlrpc/libxmlrpc/xmlrpc.c
diff -u php-src/ext/xmlrpc/libxmlrpc/xmlrpc.c:1.11 
php-src/ext/xmlrpc/libxmlrpc/xmlrpc.c:1.12
--- php-src/ext/xmlrpc/libxmlrpc/xmlrpc.c:1.11  Thu Jun  7 09:07:12 2007
+++ php-src/ext/xmlrpc/libxmlrpc/xmlrpc.c   Tue Sep 18 19:52:27 2007
@@ -31,7 +31,7 @@
 */
 
 
-static const char rcsid[] = #(@) $Id: xmlrpc.c,v 1.11 2007/06/07 09:07:12 
tony2001 Exp $;
+static const char rcsid[] = #(@) $Id: xmlrpc.c,v 1.12 2007/09/18 19:52:27 
iliaa Exp $;
 
 
 /h* ABOUT/xmlrpc
@@ -43,6 +43,11 @@
  *   9/1999 - 10/2000
  * HISTORY
  *   $Log: xmlrpc.c,v $
+ *   Revision 1.12  2007/09/18 19:52:27  iliaa
+ *
+ *   MFB: Fixed bug #42189 (xmlrpc_set_type() crashes php on invalid datetime
+ *   values).
+ *
  *   Revision 1.11  2007/06/07 09:07:12  tony2001
  *   php_localtime_r() checks
  *
@@ -179,7 +184,7 @@
}
p++;
}
-   text = buf;
+   text = buf;
}
 
 
@@ -189,15 +194,19 @@
   return -1;
}
 
+#define XMLRPC_IS_NUMBER(x) if (x  '0' || x  '9') return -1;
+
n = 1000;
tm.tm_year = 0;
for(i = 0; i  4; i++) {
+  XMLRPC_IS_NUMBER(text[i])
   tm.tm_year += (text[i]-'0')*n;
   n /= 10;
}
n = 10;
tm.tm_mon = 0;
for(i = 0; i  2; i++) {
+  XMLRPC_IS_NUMBER(text[i])
   tm.tm_mon += (text[i+4]-'0')*n;
   n /= 10;
}
@@ -206,6 +215,7 @@
n = 10;
tm.tm_mday = 0;
for(i = 0; i  2; i++) {
+  XMLRPC_IS_NUMBER(text[i])
   tm.tm_mday += (text[i+6]-'0')*n;
   n /= 10;
}
@@ -213,6 +223,7 @@
n = 10;
tm.tm_hour = 0;
for(i = 0; i  2; i++) {
+  XMLRPC_IS_NUMBER(text[i])
   tm.tm_hour += (text[i+9]-'0')*n;
   n /= 10;
}
@@ -220,6 +231,7 @@
n = 10;
tm.tm_min = 0;
for(i = 0; i  2; i++) {
+  XMLRPC_IS_NUMBER(text[i])
   tm.tm_min += (text[i+12]-'0')*n;
   n /= 10;
}
@@ -227,6 +239,7 @@
n = 10;
tm.tm_sec = 0;
for(i = 0; i  2; i++) {
+  XMLRPC_IS_NUMBER(text[i])
   tm.tm_sec += (text[i+15]-'0')*n;
   n /= 10;
}
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/tests/bug42189.phpt?r1=1.1r2=1.2diff_format=u
Index: php-src/ext/xmlrpc/tests/bug42189.phpt
diff -u /dev/null php-src/ext/xmlrpc/tests/bug42189.phpt:1.2
--- /dev/null   Tue Sep 18 19:52:28 2007
+++ php-src/ext/xmlrpc/tests/bug42189.phpt  Tue Sep 18 19:52:27 2007
@@ -0,0 +1,15 @@
+--TEST--
+Bug #42189 (xmlrpc_get_type() crashes PHP on invalid dates)
+--SKIPIF--
+?php if (!extension_loaded(xmlrpc)) print skip; ?
+--FILE--
+?php
+$a = '~~';
+$ok = xmlrpc_set_type($a, 'datetime');
+var_dump($ok);
+
+echo Done\n;
+?
+--EXPECT-- 
+bool(false)
+Done

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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2007-07-12 Thread Antony Dovgal
tony2001Thu Jul 12 10:04:42 2007 UTC

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  fix ws, cs and folding
  
  http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.49r2=1.50diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.49 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.50
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.49Fri Jan 12 12:31:31 2007
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Thu Jul 12 10:04:42 2007
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.49 2007/01/12 12:31:31 tony2001 Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.50 2007/07/12 10:04:42 tony2001 Exp $ */
 
 /**
 * BUGS:   *
@@ -199,7 +199,7 @@
 * startup / shutdown *
 */
 
-static void destroy_server_data(xmlrpc_server_data *server)
+static void destroy_server_data(xmlrpc_server_data *server) /* {{{ */
 {
if (server) {
XMLRPC_ServerDestroy(server-server_ptr);
@@ -213,26 +213,28 @@
efree(server);
}
 }
+/* }}} */
 
 /* called when server is being destructed. either when xmlrpc_server_destroy
  * is called, or when request ends.  */
-static void xmlrpc_server_destructor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
+static void xmlrpc_server_destructor(zend_rsrc_list_entry *rsrc TSRMLS_DC) /* 
{{{ */
 {
if (rsrc  rsrc-ptr) {
destroy_server_data((xmlrpc_server_data*) rsrc-ptr);
}
 }
+/* }}} */
 
 /* module init */
-PHP_MINIT_FUNCTION(xmlrpc)
+PHP_MINIT_FUNCTION(xmlrpc) /* {{{ */
 {
le_xmlrpc_server = 
zend_register_list_destructors_ex(xmlrpc_server_destructor, NULL, xmlrpc 
server, module_number);
-
return SUCCESS;
 }
+/* }}} */
 
 /* display info in phpinfo() */
-PHP_MINFO_FUNCTION(xmlrpc)
+PHP_MINFO_FUNCTION(xmlrpc) /* {{{ */
 {
php_info_print_table_start();
php_info_print_table_row(2, core library version, 
XMLRPC_GetVersionString());
@@ -242,10 +244,11 @@
php_info_print_table_row(2, open sourced by, Epinions.com);
php_info_print_table_end();
 }
+/* }}} */
 
 /***
-* random utilities *
-***/
+ * random utilities *
+ ***/
 
 /* Utility functions for adding data types to arrays, with or without key 
(assoc, non-assoc).
  * Could easily be further generalized to work with objects.
@@ -273,7 +276,7 @@
 
 #endif
 
-static int add_zval(zval* list, const char* id, zval** val)
+static int add_zval(zval* list, const char* id, zval** val) /* {{{ */
 {
if (list  val) {
if (id) {
@@ -291,17 +294,18 @@
/* what is the correct return on error? */
return 0;
 }
+/* }}} */
 
 #define my_zend_hash_get_current_key(ht, my_key, num_index) 
zend_hash_get_current_key(ht, my_key, num_index, 0)
 
 
 /*
-* input / output options *
-*/
+ * input / output options *
+ */
 
 /* parse an array (user input) into output options suitable for use by xmlrpc 
engine
  * and determine whether to return data as xml or php vars */
-static void set_output_options(php_output_options* options, zval* output_opts)
+static void set_output_options(php_output_options* options, zval* output_opts) 
/* {{{ */
 {
if (options) {
 
@@ -349,280 +353,270 @@
} else if (!strcmp(Z_STRVAL_PP(val), 
VERSION_VALUE_SIMPLE)) {
options-xmlrpc_out.version = 
xmlrpc_version_simple;
} else if 
(!strcmp((*val)-value.str.val, VERSION_VALUE_SOAP11)) {
-   
options-xmlrpc_out.version = xmlrpc_version_soap_1_1;
-   } else { /* 
if(!strcmp((*val)-value.str.val, VERSION_VALUE_AUTO)) { */
-   options-b_auto_version 
= 1;
+   options-xmlrpc_out.version = 
xmlrpc_version_soap_1_1;
+   } else { /* 
if(!strcmp((*val)-value.str.val, VERSION_VALUE_AUTO)) */
+   options-b_auto_version = 1;
}
}
}
 
- /* encoding code set */
- if(zend_hash_find(Z_ARRVAL_P(output_opts), 
-   ENCODING_KEY, ENCODING_KEY_LEN + 1, 
-   (void**)val) == SUCCESS) {
-if(Z_TYPE_PP(val) == IS_STRING) {
-   options-xmlrpc_out.xml_elem_opts.encoding = 
estrdup(Z_STRVAL_PP(val));
-}
- }

[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2006-11-13 Thread Antony Dovgal
tony2001Mon Nov 13 12:49:18 2006 UTC

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  fix compile warning
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.46r2=1.47diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.46 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.47
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.46Mon Aug 14 08:15:44 2006
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Mon Nov 13 12:49:18 2006
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.46 2006/08/14 08:15:44 tony2001 Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.47 2006/11/13 12:49:18 tony2001 Exp $ */
 
 /**
 * BUGS:   *
@@ -688,7 +688,7 @@
}

if (out.xmlrpc_out.xml_elem_opts.encoding != ENCODING_DEFAULT) {
-   efree(out.xmlrpc_out.xml_elem_opts.encoding);
+   efree((char *)out.xmlrpc_out.xml_elem_opts.encoding);
}
 }
 /* }}} */

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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c /ext/xmlrpc/tests 001.phpt 002.phpt

2006-08-14 Thread Antony Dovgal
tony2001Mon Aug 14 08:15:44 2006 UTC

  Added files: 
/php-src/ext/xmlrpc/tests   001.phpt 002.phpt 

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  fix segfault and leak in ext/xmlrpc
  add tests
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.45r2=1.46diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.45 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.46
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.45Fri Aug 11 17:41:49 2006
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Mon Aug 14 08:15:44 2006
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.45 2006/08/11 17:41:49 tony2001 Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.46 2006/08/14 08:15:44 tony2001 Exp $ */
 
 /**
 * BUGS:   *
@@ -670,6 +670,7 @@
if (Z_TYPE_PP(method) == IS_NULL) {
XMLRPC_RequestSetRequestType(xRequest, 
xmlrpc_request_response);
} else {
+   convert_to_string_ex(method);
XMLRPC_RequestSetMethodName(xRequest, 
Z_STRVAL_PP(method));
XMLRPC_RequestSetRequestType(xRequest, 
xmlrpc_request_call);
}
@@ -739,7 +740,7 @@
 
   if(XMLRPC_RequestGetRequestType(response) == xmlrpc_request_call) {
  if(method_name_out) {
-convert_to_string(method_name_out);
+zval_dtor(method_name_out);
 Z_TYPE_P(method_name_out) = IS_STRING;
 Z_STRVAL_P(method_name_out) = 
estrdup(XMLRPC_RequestGetMethodName(response));
 Z_STRLEN_P(method_name_out) = strlen(Z_STRVAL_P(method_name_out));

http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/tests/001.phpt?view=markuprev=1.1
Index: php-src/ext/xmlrpc/tests/001.phpt
+++ php-src/ext/xmlrpc/tests/001.phpt
--TEST--
xmlrpc_encode_request() with wrong arguments
--SKIPIF--
?php if (!extension_loaded(xmlrpc)) print skip; ?
--FILE--
?php

var_dump(xmlrpc_encode_request(-1, 1));
var_dump(xmlrpc_encode_request(, 1));
var_dump(xmlrpc_encode_request(array(), 1));
var_dump(xmlrpc_encode_request(3.4, 1));

echo Done\n;
?
--EXPECTF-- 
string(174) ?xml version=1.0 encoding=iso-8859-1?
methodCall
methodName-1/methodName
params
 param
  value
   int1/int
  /value
 /param
/params
/methodCall

string(160) ?xml version=1.0 encoding=iso-8859-1?
methodCall
methodName/
params
 param
  value
   int1/int
  /value
 /param
/params
/methodCall


Notice: Array to string conversion in %s on line %d
string(177) ?xml version=1.0 encoding=iso-8859-1?
methodCall
methodNameArray/methodName
params
 param
  value
   int1/int
  /value
 /param
/params
/methodCall

string(175) ?xml version=1.0 encoding=iso-8859-1?
methodCall
methodName3.4/methodName
params
 param
  value
   int1/int
  /value
 /param
/params
/methodCall

Done

http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/tests/002.phpt?view=markuprev=1.1
Index: php-src/ext/xmlrpc/tests/002.phpt
+++ php-src/ext/xmlrpc/tests/002.phpt
--TEST--
xmlrpc_encode_request() and various arguments
--SKIPIF--
?php if (!extension_loaded(xmlrpc)) print skip; ?
--FILE--
?php

$r = xmlrpc_encode_request(method, array());
var_dump(xmlrpc_decode_request($r, $method));
var_dump($method);

$r = xmlrpc_encode_request(method, 1);
var_dump(xmlrpc_decode_request($r, $method));
var_dump($method);

$r = xmlrpc_encode_request(method, 'param');
var_dump(xmlrpc_decode_request($r, $method));
var_dump($method);

$r = xmlrpc_encode_request(-1, );
var_dump(xmlrpc_decode_request($r, $method));
var_dump($method);

$r = xmlrpc_encode_request(array(), 1);
var_dump(xmlrpc_decode_request($r, $method));
var_dump($method);

echo Done\n;
?
--EXPECTF-- 
array(0) {
}
string(6) method
array(1) {
  [0]=
  int(1)
}
string(6) method
array(1) {
  [0]=
  string(5) param
}
string(6) method
array(1) {
  [0]=
  string(0) 
}
string(2) -1

Notice: Array to string conversion in %s on line %d
array(1) {
  [0]=
  int(1)
}
string(5) Array
Done

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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c /ext/xmlrpc/tests bug38431.phpt

2006-08-11 Thread Antony Dovgal
tony2001Fri Aug 11 17:41:49 2006 UTC

  Added files: 
/php-src/ext/xmlrpc/tests   bug38431.phpt 

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  fix #38431 (xmlrpc_get_type() crashes PHP on objects)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.44r2=1.45diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.44 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.45
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.44Wed Apr 12 15:14:43 2006
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Fri Aug 11 17:41:49 2006
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.44 2006/04/12 15:14:43 tony2001 Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.45 2006/08/11 17:41:49 tony2001 Exp $ */
 
 /**
 * BUGS:   *
@@ -1467,7 +1467,7 @@
 
type = get_zval_xmlrpc_type(*arg, 0);
if (type == xmlrpc_vector) {
-   vtype = determine_vector_type(Z_ARRVAL_PP(arg));
+   vtype = determine_vector_type((Z_TYPE_PP(arg) == IS_OBJECT) ? 
Z_OBJPROP_PP(arg) : Z_ARRVAL_PP(arg));
}

RETURN_STRING((char*) xmlrpc_type_as_str(type, vtype), 1);

http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/tests/bug38431.phpt?view=markuprev=1.1
Index: php-src/ext/xmlrpc/tests/bug38431.phpt
+++ php-src/ext/xmlrpc/tests/bug38431.phpt
--TEST--
Bug #38431 (xmlrpc_get_type() crashes PHP on objects)
--SKIPIF--
?php if (!extension_loaded(xmlrpc)) print skip; ?
--FILE--
?php

var_dump(xmlrpc_get_type(new stdclass));
var_dump(xmlrpc_get_type(array()));
$var = array(1,2,3);
var_dump(xmlrpc_get_type($var));
$var = array(test=1,2,3);
var_dump(xmlrpc_get_type($var));
$var = array(test=1,test2=2);
var_dump(xmlrpc_get_type($var));

echo Done\n;
?
--EXPECTF-- 
string(5) array
string(5) array
string(5) array
string(5) mixed
string(6) struct
Done

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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2005-10-05 Thread Rob Richards
rrichards   Wed Oct  5 12:39:38 2005 EDT

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  fix ZTS build
  
http://cvs.php.net/diff.php/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.40r2=1.41ty=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.40 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.41
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.40Tue Oct  4 08:07:24 2005
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Wed Oct  5 12:39:37 2005
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.40 2005/10/04 12:07:24 tony2001 Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.41 2005/10/05 16:39:37 rrichards Exp $ */
 
 /**
 * BUGS:   *
@@ -478,7 +478,7 @@
 }
 
 /* recursively convert php values into xmlrpc values */
-static XMLRPC_VALUE PHP_to_XMLRPC_worker (const char* key, zval* in_val, int 
depth)
+static XMLRPC_VALUE PHP_to_XMLRPC_worker (const char* key, zval* in_val, int 
depth TSRMLS_DC)
 {
XMLRPC_VALUE xReturn = NULL;
if(in_val) {
@@ -544,10 +544,10 @@
  ht-nApplyCount++;
  }
  if (res == HASH_KEY_IS_LONG) {
- XMLRPC_AddValueToVector(xReturn, 
PHP_to_XMLRPC_worker(0, *pIter, depth++));
+ XMLRPC_AddValueToVector(xReturn, 
PHP_to_XMLRPC_worker(0, *pIter, depth++ TSRMLS_CC));
  }
  else {
- XMLRPC_AddValueToVector(xReturn, 
PHP_to_XMLRPC_worker(my_key, *pIter, depth++));
+ XMLRPC_AddValueToVector(xReturn, 
PHP_to_XMLRPC_worker(my_key, *pIter, depth++ TSRMLS_CC));
  }
  if (ht) {
  ht-nApplyCount--;
@@ -566,9 +566,9 @@
return xReturn;
 }
 
-static XMLRPC_VALUE PHP_to_XMLRPC(zval* root_val)
+static XMLRPC_VALUE PHP_to_XMLRPC(zval* root_val TSRMLS_DC)
 {
-   return PHP_to_XMLRPC_worker(NULL, root_val, 0);
+   return PHP_to_XMLRPC_worker(NULL, root_val, 0 TSRMLS_CC);
 }
 
 /* recursively convert xmlrpc values into php values */
@@ -668,7 +668,7 @@
XMLRPC_RequestSetRequestType(xRequest, 
xmlrpc_request_call);
}
if (Z_TYPE_PP(vals) != IS_NULL) {
-   XMLRPC_RequestSetData(xRequest, 
PHP_to_XMLRPC(*vals));
+   XMLRPC_RequestSetData(xRequest, 
PHP_to_XMLRPC(*vals TSRMLS_CC));
}
 
outBuf = XMLRPC_REQUEST_ToXML(xRequest, 0);
@@ -700,7 +700,7 @@
 
if( return_value_used ) {
/* convert native php type to xmlrpc type */
-   xOut = PHP_to_XMLRPC(*arg1);
+   xOut = PHP_to_XMLRPC(*arg1 TSRMLS_CC);
 
/* generate raw xml from xmlrpc data */
outBuf = XMLRPC_VALUE_ToXML(xOut, 0);
@@ -1102,7 +1102,7 @@
FREE_ZVAL(data.return_data);
data.return_data = XMLRPC_to_PHP(xAnswer);
} else if(data.php_executed  !out.b_php_out) {
-   xAnswer = PHP_to_XMLRPC(data.return_data);
+   xAnswer = PHP_to_XMLRPC(data.return_data 
TSRMLS_CC);
}
 
/* should we return data as xml? */
@@ -1171,7 +1171,7 @@
server = zend_list_find(Z_LVAL_PP(handle), type);
 
if (type == le_xmlrpc_server) {
-   XMLRPC_VALUE xDesc = PHP_to_XMLRPC(*desc);
+   XMLRPC_VALUE xDesc = PHP_to_XMLRPC(*desc TSRMLS_CC);
if (xDesc) {
int retval = 
XMLRPC_ServerAddIntrospectionData(server-server_ptr, xDesc);
XMLRPC_CleanupValue(xDesc);

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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2005-10-04 Thread Antony Dovgal
tony2001Tue Oct  4 08:07:25 2005 EDT

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  MFB5.1: fix #32179 (xmlrpc_encode() segfaults with recursive references)
  
  
http://cvs.php.net/diff.php/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.39r2=1.40ty=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.39 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.40
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.39Wed Aug  3 10:08:22 2005
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Tue Oct  4 08:07:24 2005
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.39 2005/08/03 14:08:22 sniper Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.40 2005/10/04 12:07:24 tony2001 Exp $ */
 
 /**
 * BUGS:   *
@@ -520,28 +520,40 @@
   unsigned long num_index;
   zval** pIter;
   char* my_key;
+  HashTable *ht = NULL;
 
+  ht = HASH_OF(val);
+  if (ht  ht-nApplyCount  1) {
+  php_error_docref(NULL TSRMLS_CC, E_ERROR, XML-RPC 
doesn't support circular references);
+  return NULL;
+  }
+  
   convert_to_array(val);
-
   xReturn = XMLRPC_CreateVector(key, 
determine_vector_type(Z_ARRVAL_P(val)));
 
   zend_hash_internal_pointer_reset(Z_ARRVAL_P(val));
-  while(1) {
+  while(zend_hash_get_current_data(Z_ARRVAL_P(val), 
(void**)pIter) == SUCCESS) {
  int res = my_zend_hash_get_current_key(Z_ARRVAL_P(val), 
my_key, num_index);
- if(res == HASH_KEY_IS_LONG) {
-if(zend_hash_get_current_data(Z_ARRVAL_P(val), 
(void**)pIter) == SUCCESS) {
-   XMLRPC_AddValueToVector(xReturn, 
PHP_to_XMLRPC_worker(0, *pIter, depth++));
-}
- }
- else if(res == HASH_KEY_NON_EXISTANT) {
-break;
+
+ switch (res) {
+ case HASH_KEY_NON_EXISTANT:
+ break;
+ default:
+  ht = HASH_OF(*pIter);
+ if (ht) {
+ ht-nApplyCount++;
+ }
+ if (res == HASH_KEY_IS_LONG) {
+ XMLRPC_AddValueToVector(xReturn, 
PHP_to_XMLRPC_worker(0, *pIter, depth++));
+ }
+ else {
+ XMLRPC_AddValueToVector(xReturn, 
PHP_to_XMLRPC_worker(my_key, *pIter, depth++));
+ }
+ if (ht) {
+ ht-nApplyCount--;
+ }
+ break;
  }
- else if(res == HASH_KEY_IS_STRING) {
-if(zend_hash_get_current_data(Z_ARRVAL_P(val), 
(void**)pIter) == SUCCESS) {
-   XMLRPC_AddValueToVector(xReturn, 
PHP_to_XMLRPC_worker(my_key, *pIter, depth++));
-}
- }
-
  zend_hash_move_forward(Z_ARRVAL_P(val));
   }
}

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



[PHP-CVS] cvs: php-src /ext/xmlrpc xmlrpc-epi-php.c

2003-10-14 Thread George Schlossnagle
gschlossnagle   Tue Oct 14 20:15:24 2003 EDT

  Modified files:  
/php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  fix for dereferncing null pointer ([EMAIL PROTECTED])
  
  
  
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.35 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.36
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.35Sun Aug 31 16:45:51 2003
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Tue Oct 14 20:15:23 2003
@@ -51,7 +51,7 @@
+--+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.35 2003/08/31 20:45:51 iliaa Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.36 2003/10/15 00:15:23 gschlossnagle Exp $ */
 
 /**
 * BUGS:   *
@@ -1030,7 +1030,12 @@
WRONG_PARAM_COUNT;
}
/* user output options */
-   set_output_options(out, *output_opts);
+   if (argc == 3) {
+   set_output_options(out, NULL);
+   }
+   else {
+   set_output_options(out, *output_opts);
+   }
 
server = zend_list_find(Z_LVAL_PP(handle), type);
 

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