summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2014-11-18 13:13:23 +0100
committerAnatol Belski <ab@php.net>2014-11-18 13:19:52 +0100
commit075fc1ff1a37a096438e7cbffe7f8e4cca98c111 (patch)
tree878751b34933f050c707b901b08a5155fd15b908
parentf8f86a44ef108e7fcd7e8bc810e7c8ee3dd684a2 (diff)
downloadphp-git-075fc1ff1a37a096438e7cbffe7f8e4cca98c111.tar.gz
fix some datatype mismatches
-rw-r--r--ext/wddx/php_wddx_api.h2
-rw-r--r--ext/wddx/wddx.c5
2 files changed, 4 insertions, 3 deletions
diff --git a/ext/wddx/php_wddx_api.h b/ext/wddx/php_wddx_api.h
index 5c47109ee3..edbd013342 100644
--- a/ext/wddx/php_wddx_api.h
+++ b/ext/wddx/php_wddx_api.h
@@ -61,7 +61,7 @@ void php_wddx_packet_start(wddx_packet *packet, char *comment, size_t comment
void php_wddx_packet_end(wddx_packet *packet);
void php_wddx_serialize_var(wddx_packet *packet, zval *var, zend_string *name TSRMLS_DC);
-int php_wddx_deserialize_ex(char *, int, zval *return_value);
+int php_wddx_deserialize_ex(const char *, size_t, zval *return_value);
#define php_wddx_gather(packet) estrndup(packet->c, packet->len)
#endif /* PHP_WDDX_API_H */
diff --git a/ext/wddx/wddx.c b/ext/wddx/wddx.c
index 705babd885..43deb15afd 100644
--- a/ext/wddx/wddx.c
+++ b/ext/wddx/wddx.c
@@ -1046,7 +1046,7 @@ static void php_wddx_process_data(void *user_data, const XML_Char *s, int len)
/* {{{ php_wddx_deserialize_ex
*/
-int php_wddx_deserialize_ex(char *value, int vallen, zval *return_value)
+int php_wddx_deserialize_ex(const char *value, size_t vallen, zval *return_value)
{
wddx_stack stack;
XML_Parser parser;
@@ -1060,7 +1060,8 @@ int php_wddx_deserialize_ex(char *value, int vallen, zval *return_value)
XML_SetElementHandler(parser, php_wddx_push_element, php_wddx_pop_element);
XML_SetCharacterDataHandler(parser, php_wddx_process_data);
- XML_Parse(parser, value, vallen, 1);
+ /* XXX value should be parsed in the loop to exhaust size_t */
+ XML_Parse(parser, value, (int)vallen, 1);
XML_ParserFree(parser);