mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Fix signedness issues in soap.c
This commit is contained in:
parent
ca7a0df35e
commit
e8c6c6f15d
3 changed files with 26 additions and 24 deletions
|
@ -174,13 +174,13 @@ encodePtr get_encoder(sdlPtr sdl, const char *ns, const char *type)
|
||||||
return enc;
|
return enc;
|
||||||
}
|
}
|
||||||
|
|
||||||
encodePtr get_encoder_ex(sdlPtr sdl, const char *nscat, int len)
|
encodePtr get_encoder_ex(sdlPtr sdl, const char *nscat, size_t len)
|
||||||
{
|
{
|
||||||
encodePtr enc;
|
encodePtr enc;
|
||||||
|
|
||||||
if ((enc = zend_hash_str_find_ptr(&SOAP_GLOBAL(defEnc), (char*)nscat, len)) != NULL) {
|
if ((enc = zend_hash_str_find_ptr(&SOAP_GLOBAL(defEnc), nscat, len)) != NULL) {
|
||||||
return enc;
|
return enc;
|
||||||
} else if (sdl && sdl->encoders && (enc = zend_hash_str_find_ptr(sdl->encoders, (char*)nscat, len)) != NULL) {
|
} else if (sdl && sdl->encoders && (enc = zend_hash_str_find_ptr(sdl->encoders, nscat, len)) != NULL) {
|
||||||
return enc;
|
return enc;
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -255,7 +255,7 @@ sdlPtr get_sdl(zval *this_ptr, char *uri, zend_long cache_wsdl);
|
||||||
|
|
||||||
encodePtr get_encoder_from_prefix(sdlPtr sdl, xmlNodePtr data, const xmlChar *type);
|
encodePtr get_encoder_from_prefix(sdlPtr sdl, xmlNodePtr data, const xmlChar *type);
|
||||||
encodePtr get_encoder(sdlPtr sdl, const char *ns, const char *type);
|
encodePtr get_encoder(sdlPtr sdl, const char *ns, const char *type);
|
||||||
encodePtr get_encoder_ex(sdlPtr sdl, const char *nscat, int len);
|
encodePtr get_encoder_ex(sdlPtr sdl, const char *nscat, size_t len);
|
||||||
|
|
||||||
sdlBindingPtr get_binding_from_type(sdlPtr sdl, sdlBindingType type);
|
sdlBindingPtr get_binding_from_type(sdlPtr sdl, sdlBindingType type);
|
||||||
sdlBindingPtr get_binding_from_name(sdlPtr sdl, char *name, char *ns);
|
sdlBindingPtr get_binding_from_name(sdlPtr sdl, char *name, char *ns);
|
||||||
|
|
|
@ -37,7 +37,7 @@ typedef struct _soapHeader {
|
||||||
sdlFunctionPtr function;
|
sdlFunctionPtr function;
|
||||||
zval function_name;
|
zval function_name;
|
||||||
int mustUnderstand;
|
int mustUnderstand;
|
||||||
int num_params;
|
uint32_t num_params;
|
||||||
zval *parameters;
|
zval *parameters;
|
||||||
zval retval;
|
zval retval;
|
||||||
sdlSoapBindingFunctionHeaderPtr hdr;
|
sdlSoapBindingFunctionHeaderPtr hdr;
|
||||||
|
@ -54,14 +54,14 @@ static void add_soap_fault_ex(zval *fault, zval *obj, char *fault_code, char *fa
|
||||||
static ZEND_NORETURN void soap_server_fault(char* code, char* string, char *actor, zval* details, char *name);
|
static ZEND_NORETURN void soap_server_fault(char* code, char* string, char *actor, zval* details, char *name);
|
||||||
static void soap_server_fault_ex(sdlFunctionPtr function, zval* fault, soapHeader* hdr);
|
static void soap_server_fault_ex(sdlFunctionPtr function, zval* fault, soapHeader* hdr);
|
||||||
|
|
||||||
static sdlParamPtr get_param(sdlFunctionPtr function, const char *param_name, int index, int);
|
static sdlParamPtr get_param(sdlFunctionPtr function, const char *param_name, zend_ulong index, int);
|
||||||
static sdlFunctionPtr get_function(sdlPtr sdl, const char *function_name);
|
static sdlFunctionPtr get_function(sdlPtr sdl, const char *function_name);
|
||||||
static sdlFunctionPtr get_doc_function(sdlPtr sdl, xmlNodePtr params);
|
static sdlFunctionPtr get_doc_function(sdlPtr sdl, xmlNodePtr params);
|
||||||
|
|
||||||
static sdlFunctionPtr deserialize_function_call(sdlPtr sdl, xmlDocPtr request, const char* actor, zval *function_name, int *num_params, zval **parameters, int *version, soapHeader **headers);
|
static sdlFunctionPtr deserialize_function_call(sdlPtr sdl, xmlDocPtr request, const char* actor, zval *function_name, uint32_t *num_params, zval **parameters, int *version, soapHeader **headers);
|
||||||
static xmlDocPtr serialize_response_call(sdlFunctionPtr function, const char *function_name, const char *uri,zval *ret, soapHeader *headers, int version);
|
static xmlDocPtr serialize_response_call(sdlFunctionPtr function, const char *function_name, const char *uri,zval *ret, soapHeader *headers, int version);
|
||||||
static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function, const char *function_name, const char *uri, zval *arguments, int arg_count, int version, HashTable *soap_headers);
|
static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function, const char *function_name, const char *uri, zval *arguments, uint32_t arg_count, int version, HashTable *soap_headers);
|
||||||
static xmlNodePtr serialize_parameter(sdlParamPtr param,zval *param_val, int index,const char *name, int style, xmlNodePtr parent);
|
static xmlNodePtr serialize_parameter(sdlParamPtr param,zval *param_val, uint32_t index,const char *name, int style, xmlNodePtr parent);
|
||||||
static xmlNodePtr serialize_zval(zval *val, sdlParamPtr param, const char *paramName, int style, xmlNodePtr parent);
|
static xmlNodePtr serialize_zval(zval *val, sdlParamPtr param, const char *paramName, int style, xmlNodePtr parent);
|
||||||
|
|
||||||
static void delete_service(soapServicePtr service);
|
static void delete_service(soapServicePtr service);
|
||||||
|
@ -1244,7 +1244,8 @@ PHP_METHOD(SoapServer, handle)
|
||||||
xmlDocPtr doc_request = NULL, doc_return = NULL;
|
xmlDocPtr doc_request = NULL, doc_return = NULL;
|
||||||
zval function_name, *params, *soap_obj, retval;
|
zval function_name, *params, *soap_obj, retval;
|
||||||
char cont_len[30];
|
char cont_len[30];
|
||||||
int num_params = 0, size, i, call_status = 0;
|
uint32_t num_params = 0;
|
||||||
|
int size, i, call_status = 0;
|
||||||
xmlChar *buf;
|
xmlChar *buf;
|
||||||
HashTable *function_table;
|
HashTable *function_table;
|
||||||
soapHeader *soap_headers = NULL;
|
soapHeader *soap_headers = NULL;
|
||||||
|
@ -1653,7 +1654,7 @@ fail:
|
||||||
zval_ptr_dtor(&retval);
|
zval_ptr_dtor(&retval);
|
||||||
while (soap_headers != NULL) {
|
while (soap_headers != NULL) {
|
||||||
soapHeader *h = soap_headers;
|
soapHeader *h = soap_headers;
|
||||||
int i;
|
uint32_t i;
|
||||||
|
|
||||||
soap_headers = soap_headers->next;
|
soap_headers = soap_headers->next;
|
||||||
if (h->parameters) {
|
if (h->parameters) {
|
||||||
|
@ -2238,7 +2239,7 @@ static void do_soap_call(zend_execute_data *execute_data,
|
||||||
zval* this_ptr,
|
zval* this_ptr,
|
||||||
char* function,
|
char* function,
|
||||||
size_t function_len,
|
size_t function_len,
|
||||||
int arg_count,
|
uint32_t arg_count,
|
||||||
zval* real_args,
|
zval* real_args,
|
||||||
zval* return_value,
|
zval* return_value,
|
||||||
char* location,
|
char* location,
|
||||||
|
@ -2480,7 +2481,7 @@ void soap_client_call_impl(INTERNAL_FUNCTION_PARAMETERS, bool is_soap_call)
|
||||||
zval *args;
|
zval *args;
|
||||||
zval *real_args = NULL;
|
zval *real_args = NULL;
|
||||||
zval *param;
|
zval *param;
|
||||||
int arg_count;
|
uint32_t arg_count;
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
bool free_soap_headers = 0;
|
bool free_soap_headers = 0;
|
||||||
zval *this_ptr;
|
zval *this_ptr;
|
||||||
|
@ -2904,9 +2905,9 @@ static void set_soap_fault(zval *obj, const char *fault_code_ns, const char *fau
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
static void deserialize_parameters(xmlNodePtr params, sdlFunctionPtr function, int *num_params, zval **parameters) /* {{{ */
|
static void deserialize_parameters(xmlNodePtr params, sdlFunctionPtr function, uint32_t *num_params, zval **parameters) /* {{{ */
|
||||||
{
|
{
|
||||||
int cur_param = 0,num_of_params = 0;
|
uint32_t cur_param = 0,num_of_params = 0;
|
||||||
zval *tmp_parameters = NULL;
|
zval *tmp_parameters = NULL;
|
||||||
|
|
||||||
if (function != NULL) {
|
if (function != NULL) {
|
||||||
|
@ -3047,7 +3048,7 @@ static xmlNodePtr get_envelope(xmlNodePtr trav, int *version, char **envelope_ns
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static sdlFunctionPtr deserialize_function_call(sdlPtr sdl, xmlDocPtr request, const char* actor, zval *function_name, int *num_params, zval **parameters, int *version, soapHeader **headers) /* {{{ */
|
static sdlFunctionPtr deserialize_function_call(sdlPtr sdl, xmlDocPtr request, const char* actor, zval *function_name, uint32_t *num_params, zval **parameters, int *version, soapHeader **headers) /* {{{ */
|
||||||
{
|
{
|
||||||
char* envelope_ns = NULL;
|
char* envelope_ns = NULL;
|
||||||
xmlNodePtr trav,env,head,body,func;
|
xmlNodePtr trav,env,head,body,func;
|
||||||
|
@ -3329,7 +3330,7 @@ static int serialize_response_call2(xmlNodePtr body, sdlFunctionPtr function, co
|
||||||
{
|
{
|
||||||
xmlNodePtr method = NULL, param;
|
xmlNodePtr method = NULL, param;
|
||||||
sdlParamPtr parameter = NULL;
|
sdlParamPtr parameter = NULL;
|
||||||
int param_count;
|
uint32_t param_count;
|
||||||
int style, use;
|
int style, use;
|
||||||
xmlNsPtr ns = NULL;
|
xmlNsPtr ns = NULL;
|
||||||
|
|
||||||
|
@ -3800,13 +3801,14 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, const char *fu
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function, const char *function_name, const char *uri, zval *arguments, int arg_count, int version, HashTable *soap_headers) /* {{{ */
|
static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function, const char *function_name, const char *uri, zval *arguments, uint32_t arg_count, int version, HashTable *soap_headers) /* {{{ */
|
||||||
{
|
{
|
||||||
xmlDoc *doc;
|
xmlDoc *doc;
|
||||||
xmlNodePtr envelope = NULL, body, method = NULL, head = NULL;
|
xmlNodePtr envelope = NULL, body, method = NULL, head = NULL;
|
||||||
xmlNsPtr ns = NULL;
|
xmlNsPtr ns = NULL;
|
||||||
zval *zstyle, *zuse;
|
zval *zstyle, *zuse;
|
||||||
int i, style, use;
|
uint32_t i;
|
||||||
|
int style, use;
|
||||||
HashTable *hdrs = NULL;
|
HashTable *hdrs = NULL;
|
||||||
|
|
||||||
encode_reset_ns();
|
encode_reset_ns();
|
||||||
|
@ -3902,7 +3904,7 @@ static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function
|
||||||
}
|
}
|
||||||
|
|
||||||
if (function && function->requestParameters) {
|
if (function && function->requestParameters) {
|
||||||
int n = zend_hash_num_elements(function->requestParameters);
|
uint32_t n = zend_hash_num_elements(function->requestParameters);
|
||||||
|
|
||||||
if (n > arg_count) {
|
if (n > arg_count) {
|
||||||
for (i = arg_count; i < n; i++) {
|
for (i = arg_count; i < n; i++) {
|
||||||
|
@ -4000,7 +4002,7 @@ static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
static xmlNodePtr serialize_parameter(sdlParamPtr param, zval *param_val, int index, const char *name, int style, xmlNodePtr parent) /* {{{ */
|
static xmlNodePtr serialize_parameter(sdlParamPtr param, zval *param_val, uint32_t index, const char *name, int style, xmlNodePtr parent) /* {{{ */
|
||||||
{
|
{
|
||||||
const char *paramName;
|
const char *paramName;
|
||||||
xmlNodePtr xmlParam;
|
xmlNodePtr xmlParam;
|
||||||
|
@ -4065,7 +4067,7 @@ static xmlNodePtr serialize_zval(zval *val, sdlParamPtr param, const char *param
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
static sdlParamPtr get_param(sdlFunctionPtr function, const char *param_name, int index, int response) /* {{{ */
|
static sdlParamPtr get_param(sdlFunctionPtr function, const char *param_name, zend_ulong index, int response) /* {{{ */
|
||||||
{
|
{
|
||||||
sdlParamPtr tmp;
|
sdlParamPtr tmp;
|
||||||
HashTable *ht;
|
HashTable *ht;
|
||||||
|
@ -4107,7 +4109,7 @@ static sdlFunctionPtr get_function(sdlPtr sdl, const char *function_name) /* {{{
|
||||||
{
|
{
|
||||||
sdlFunctionPtr tmp;
|
sdlFunctionPtr tmp;
|
||||||
|
|
||||||
int len = strlen(function_name);
|
size_t len = strlen(function_name);
|
||||||
char *str = estrndup(function_name,len);
|
char *str = estrndup(function_name,len);
|
||||||
zend_str_tolower(str,len);
|
zend_str_tolower(str,len);
|
||||||
if (sdl != NULL) {
|
if (sdl != NULL) {
|
||||||
|
@ -4339,7 +4341,7 @@ static void type_to_string(sdlTypePtr type, smart_str *buf, int level) /* {{{ */
|
||||||
attr->extraAttributes &&
|
attr->extraAttributes &&
|
||||||
(ext = zend_hash_str_find_ptr(attr->extraAttributes, WSDL_NAMESPACE":arrayType", sizeof(WSDL_NAMESPACE":arrayType")-1)) != NULL) {
|
(ext = zend_hash_str_find_ptr(attr->extraAttributes, WSDL_NAMESPACE":arrayType", sizeof(WSDL_NAMESPACE":arrayType")-1)) != NULL) {
|
||||||
char *end = strchr(ext->val, '[');
|
char *end = strchr(ext->val, '[');
|
||||||
int len;
|
size_t len;
|
||||||
if (end == NULL) {
|
if (end == NULL) {
|
||||||
len = strlen(ext->val);
|
len = strlen(ext->val);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue