From 28277f1d00de1590ee4ce33a66c7a385d1333cd1 Mon Sep 17 00:00:00 2001 From: Wez Furlong Date: Fri, 28 Nov 2003 15:42:58 +0000 Subject: [PATCH] fix #26001; serialize crashes when accessing an overloaded object that has no properties (NULL hashtable). --- ext/standard/var.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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) { -- 2.50.1