From: Dmitry Stogov Date: Thu, 7 Jul 2005 17:29:25 +0000 (+0000) Subject: Fixed SIGSEGV on decoding elements X-Git-Tag: php-5.1.0b3~114 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bcd201f522bd63d1aa9d075c399470137d90399b;p=php Fixed SIGSEGV on decoding elements --- diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index b0842a1fae..4f36b67152 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -993,9 +993,12 @@ static void model_to_zval_object(zval *ret, sdlContentModelPtr model, xmlNodePtr while (node != NULL) { if (get_zval_property(ret, (char*)node->name TSRMLS_CC) == NULL) { zval* val = master_to_zval(get_conversion(XSD_ANYXML), node); - while (node->next != NULL && + while (Z_TYPE_P(val) == IS_STRING && node->next != NULL && get_zval_property(ret, (char*)node->next->name TSRMLS_CC) == NULL) { zval* val2 = master_to_zval(get_conversion(XSD_ANYXML), node->next); + if (Z_TYPE_P(val2) != IS_STRING) { + break; + } add_string_to_string(val, val, val2); zval_ptr_dtor(&val2); node = node->next;