]> granicus.if.org Git - php/commitdiff
Initialize zvals
authorDmitry Stogov <dmitry@zend.com>
Fri, 16 May 2014 15:43:49 +0000 (19:43 +0400)
committerDmitry Stogov <dmitry@zend.com>
Fri, 16 May 2014 15:43:49 +0000 (19:43 +0400)
ext/soap/php_encoding.c

index aea31c9abe8a7df12dfa7cfaeaa7e505b720e335..4d339173bc00d5d02ee1a8ff8c8e1b912eeb20b3 100644 (file)
@@ -1250,6 +1250,7 @@ static void model_to_zval_any(zval *ret, xmlNodePtr node TSRMLS_DC)
        while (node != NULL) {
                if (get_zval_property(ret, (char*)node->name, &rv TSRMLS_CC) == NULL) {
                        
+                       ZVAL_NULL(&val);
                        master_to_zval(&val, get_conversion(XSD_ANYXML), node TSRMLS_CC);
                        
                        if (any && Z_TYPE_P(any) != IS_ARRAY) {
@@ -1268,6 +1269,7 @@ static void model_to_zval_any(zval *ret, xmlNodePtr node TSRMLS_DC)
                                while (node->next != NULL) {
                                        zval val2;
 
+                                       ZVAL_NULL(&val2);
                                        master_to_zval(&val2, get_conversion(XSD_ANYXML), node->next TSRMLS_CC);
                                        if (Z_TYPE(val2) != IS_STRING ||  *Z_STRVAL(val) != '<') {
                                                break;
@@ -1329,6 +1331,7 @@ static void model_to_zval_object(zval *ret, sdlContentModelPtr model, xmlNodePtr
                                        zval val;
                                        xmlNodePtr r_node;
 
+                                       ZVAL_NULL(&val);
                                        r_node = check_and_resolve_href(node);
                                        if (r_node && r_node->children && r_node->children->content) {
                                                if (model->u.element->fixed && strcmp(model->u.element->fixed, (char*)r_node->children->content) != 0) {
@@ -1560,6 +1563,7 @@ static zval *to_zval_object_ex(zval *ret, encodeTypePtr type, xmlNodePtr data, z
                                                dummy = xmlNewNode(NULL, BAD_CAST("BOGUS"));
                                                text = xmlNewText(BAD_CAST(str_val));
                                                xmlAddChild(dummy, text);
+                                               ZVAL_NULL(&data);
                                                master_to_zval(&data, attr->encode, dummy TSRMLS_CC);
                                                xmlFreeNode(dummy);
                                                set_zval_property(ret, attr->name, &data TSRMLS_CC);
@@ -1583,6 +1587,7 @@ static zval *to_zval_object_ex(zval *ret, encodeTypePtr type, xmlNodePtr data, z
                                zval  tmpVal, rv;
                                zval *prop;
 
+                               ZVAL_NULL(&tmpVal);
                                master_to_zval(&tmpVal, NULL, trav TSRMLS_CC);
 
                                prop = get_zval_property(ret, (char*)trav->name, &rv TSRMLS_CC);
@@ -2635,6 +2640,7 @@ static zval *to_zval_array(zval *ret, encodeTypePtr type, xmlNodePtr data TSRMLS
                        zval tmpVal, *ar;
                        xmlAttrPtr position = get_attribute(trav->properties,"position");
 
+                       ZVAL_NULL(&tmpVal);
                        master_to_zval(&tmpVal, enc, trav TSRMLS_CC);
                        if (position != NULL && position->children && position->children->content) {
                                char* tmp = strrchr((char*)position->children->content, '[');
@@ -2763,7 +2769,9 @@ static zval *to_zval_map(zval *ret, encodeTypePtr type, xmlNodePtr data TSRMLS_D
                                soap_error0(E_ERROR,  "Encoding: Can't decode apache map, missing value");
                        }
 
+                       ZVAL_NULL(&key);
                        master_to_zval(&key, NULL, xmlKey TSRMLS_CC);
+                       ZVAL_NULL(&value);
                        master_to_zval(&value, NULL, xmlValue TSRMLS_CC);
 
                        if (Z_TYPE(key) == IS_STRING) {