From: Wez Furlong Date: Fri, 28 Nov 2003 15:42:58 +0000 (+0000) Subject: fix #26001; serialize crashes when accessing an overloaded X-Git-Tag: php-5.0.0b3RC1~560 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=28277f1d00de1590ee4ce33a66c7a385d1333cd1;p=php fix #26001; serialize crashes when accessing an overloaded object that has no properties (NULL hashtable). --- diff --git a/ext/standard/var.c b/ext/standard/var.c index 898bcf8e0f..a33c8da200 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -585,15 +585,16 @@ static void php_var_serialize_intern(smart_str *buf, zval **struc, HashTable *va /* fall-through */ } case IS_ARRAY: - myht = HASH_OF(*struc); if (Z_TYPE_PP(struc) == IS_ARRAY) { smart_str_appendl(buf, "a:", 2); + myht = HASH_OF(*struc); } else { php_var_serialize_class_name(buf, struc TSRMLS_CC); + myht = Z_OBJPROP_PP(struc); } /* count after serializing name, since php_var_serialize_class_name changes the count if the variable is incomplete class */ - i = zend_hash_num_elements(myht); + i = myht ? zend_hash_num_elements(myht) : 0; smart_str_append_long(buf, i); smart_str_appendl(buf, ":{", 2); if (i > 0) {