diff options
| author | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:36:21 -0400 |
|---|---|---|
| committer | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:36:21 -0400 |
| commit | d29a4fd2dd3b5d4cf6e80b602544d7b71d794e76 (patch) | |
| tree | b38e2e5c6974b9a15f103e5cf884cba9fff90ef4 /ext/xmlrpc | |
| parent | a88a88d0986a4a32288c102cdbfebd78d7e91d99 (diff) | |
| download | php-d29a4fd2dd3b5d4cf6e80b602544d7b71d794e76.tar.gz | |
Imported Upstream version 5.2.0upstream/5.2.0
Diffstat (limited to 'ext/xmlrpc')
| -rw-r--r-- | ext/xmlrpc/libxmlrpc/xml_element.c | 9 | ||||
| -rw-r--r-- | ext/xmlrpc/tests/001.phpt | 66 | ||||
| -rw-r--r-- | ext/xmlrpc/tests/002.phpt | 56 | ||||
| -rw-r--r-- | ext/xmlrpc/tests/bug37057.phpt | 2 | ||||
| -rw-r--r-- | ext/xmlrpc/xmlrpc-epi-php.c | 7 |
5 files changed, 134 insertions, 6 deletions
diff --git a/ext/xmlrpc/libxmlrpc/xml_element.c b/ext/xmlrpc/libxmlrpc/xml_element.c index 073105638..15fc3bf0b 100644 --- a/ext/xmlrpc/libxmlrpc/xml_element.c +++ b/ext/xmlrpc/libxmlrpc/xml_element.c @@ -31,7 +31,7 @@ */ -static const char rcsid[] = "#(@) $Id: xml_element.c,v 1.9 2005/04/22 11:06:53 jorton Exp $"; +static const char rcsid[] = "#(@) $Id: xml_element.c,v 1.9.4.1 2006/07/30 11:34:02 tony2001 Exp $"; @@ -44,6 +44,9 @@ static const char rcsid[] = "#(@) $Id: xml_element.c,v 1.9 2005/04/22 11:06:53 j * 06/2000 * HISTORY * $Log: xml_element.c,v $ + * Revision 1.9.4.1 2006/07/30 11:34:02 tony2001 + * MFH: fix compile warnings (#38257) + * * Revision 1.9 2005/04/22 11:06:53 jorton * Fixed bug #32797 (invalid C code in xmlrpc extension). * @@ -697,8 +700,8 @@ xml_element* xml_elem_parse_buf(const char* in_buf, int len, XML_ELEM_INPUT_OPTI mydata.input_options = options; mydata.needs_enc_conversion = options->encoding && strcmp(options->encoding, encoding_utf_8); - XML_SetElementHandler(parser, _xmlrpc_startElement, _xmlrpc_endElement); - XML_SetCharacterDataHandler(parser, _xmlrpc_charHandler); + XML_SetElementHandler(parser, (XML_StartElementHandler)_xmlrpc_startElement, (XML_EndElementHandler)_xmlrpc_endElement); + XML_SetCharacterDataHandler(parser, (XML_CharacterDataHandler)_xmlrpc_charHandler); /* pass the xml_elem_data struct along */ XML_SetUserData(parser, (void*)&mydata); diff --git a/ext/xmlrpc/tests/001.phpt b/ext/xmlrpc/tests/001.phpt new file mode 100644 index 000000000..99fd958d2 --- /dev/null +++ b/ext/xmlrpc/tests/001.phpt @@ -0,0 +1,66 @@ +--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> + <int>1</int> + </value> + </param> +</params> +</methodCall> +" +string(160) "<?xml version="1.0" encoding="iso-8859-1"?> +<methodCall> +<methodName/> +<params> + <param> + <value> + <int>1</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> +<methodName>Array</methodName> +<params> + <param> + <value> + <int>1</int> + </value> + </param> +</params> +</methodCall> +" +string(175) "<?xml version="1.0" encoding="iso-8859-1"?> +<methodCall> +<methodName>3.4</methodName> +<params> + <param> + <value> + <int>1</int> + </value> + </param> +</params> +</methodCall> +" +Done diff --git a/ext/xmlrpc/tests/002.phpt b/ext/xmlrpc/tests/002.phpt new file mode 100644 index 000000000..c8d722b80 --- /dev/null +++ b/ext/xmlrpc/tests/002.phpt @@ -0,0 +1,56 @@ +--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 diff --git a/ext/xmlrpc/tests/bug37057.phpt b/ext/xmlrpc/tests/bug37057.phpt index 0764d8af6..013cc9192 100644 --- a/ext/xmlrpc/tests/bug37057.phpt +++ b/ext/xmlrpc/tests/bug37057.phpt @@ -1,5 +1,7 @@ --TEST-- Bug #37057 (xmlrpc_decode() may produce arrays with numeric string keys which are unaccessible) +--SKIPIF-- +<?php if (!extension_loaded("xmlrpc")) print "skip"; ?> --FILE-- <?php $response='<?xml version="1.0"?> diff --git a/ext/xmlrpc/xmlrpc-epi-php.c b/ext/xmlrpc/xmlrpc-epi-php.c index 9a043e59e..d52486006 100644 --- a/ext/xmlrpc/xmlrpc-epi-php.c +++ b/ext/xmlrpc/xmlrpc-epi-php.c @@ -51,7 +51,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: xmlrpc-epi-php.c,v 1.39.2.7 2006/08/11 19:16:29 tony2001 Exp $ */ +/* $Id: xmlrpc-epi-php.c,v 1.39.2.5.2.2 2006/08/14 08:18:01 tony2001 Exp $ */ /********************************************************************** * BUGS: * @@ -671,6 +671,7 @@ PHP_FUNCTION(xmlrpc_encode_request) 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); } @@ -740,7 +741,7 @@ zval* decode_request_worker (zval* xml_in, zval* encoding_in, zval* method_name_ 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)); @@ -1468,7 +1469,7 @@ PHP_FUNCTION(xmlrpc_get_type) 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); |
