From bcd201f522bd63d1aa9d075c399470137d90399b Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Thu, 7 Jul 2005 17:29:25 +0000 Subject: Fixed SIGSEGV on decoding elements --- ext/soap/php_encoding.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'ext/soap/php_encoding.c') 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; -- cgit v1.2.1