From: Sascha Schumann Date: Fri, 3 Aug 2001 11:00:16 +0000 (+0000) Subject: Do the nul'ifiying of php_var_serialize's result at the right place X-Git-Tag: PRE_ENGINE2_SPLIT~100 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=723bbcbea02f5ec010c2fd29b89049c804d6f384;p=php Do the nul'ifiying of php_var_serialize's result at the right place --- diff --git a/ext/session/session.c b/ext/session/session.c index 7fe32677c5..6c7ab27cd3 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -297,8 +297,6 @@ PS_SERIALIZER_ENCODE_FUNC(php_binary) smart_str_appendl(&buf, key, key_length); ); - smart_str_0(&buf); - if (newlen) *newlen = buf.len; *newstr = buf.c; PHP_VAR_SERIALIZE_DESTROY(var_hash); @@ -366,8 +364,6 @@ PS_SERIALIZER_ENCODE_FUNC(php) smart_str_appendc(&buf, PS_DELIMITER); ); - smart_str_0(&buf); - if (newlen) *newlen = buf.len; *newstr = buf.c; diff --git a/ext/standard/var.c b/ext/standard/var.c index c5bb299dd4..a4a91be942 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -163,7 +163,7 @@ static inline int php_add_var_hash(HashTable *var_hash, zval *var, void *var_old return SUCCESS; } -PHPAPI void php_var_serialize(smart_str *buf, zval **struc, HashTable *var_hash) +static void php_var_serialize_intern(smart_str *buf, zval **struc, HashTable *var_hash) { char s[256]; ulong slen; @@ -254,8 +254,8 @@ PHPAPI void php_var_serialize(smart_str *buf, zval **struc, HashTable *var_hash) } if (zend_hash_find(Z_OBJPROP_PP(struc), Z_STRVAL_PP(name), Z_STRLEN_PP(name)+1, (void*)&d) == SUCCESS) { - php_var_serialize(buf, name, NULL); - php_var_serialize(buf, d, var_hash); + php_var_serialize_intern(buf, name, NULL); + php_var_serialize_intern(buf, d, var_hash); } } } @@ -317,17 +317,17 @@ PHPAPI void php_var_serialize(smart_str *buf, zval **struc, HashTable *var_hash) case HASH_KEY_IS_LONG: MAKE_STD_ZVAL(d); ZVAL_LONG(d,index); - php_var_serialize(buf, &d, NULL); + php_var_serialize_intern(buf, &d, NULL); FREE_ZVAL(d); break; case HASH_KEY_IS_STRING: MAKE_STD_ZVAL(d); ZVAL_STRING(d,key,0); - php_var_serialize(buf, &d, NULL); + php_var_serialize_intern(buf, &d, NULL); FREE_ZVAL(d); break; } - php_var_serialize(buf, data, var_hash); + php_var_serialize_intern(buf, data, var_hash); } } smart_str_appendc(buf, '}'); @@ -338,6 +338,12 @@ PHPAPI void php_var_serialize(smart_str *buf, zval **struc, HashTable *var_hash) } } +PHPAPI void php_var_serialize(smart_str *buf, zval **struc, HashTable *var_hash) +{ + php_var_serialize_intern(buf, struc, var_hash); + smart_str_0(buf); +} + /* }}} */ /* {{{ php_var_dump */ @@ -606,7 +612,6 @@ PHP_FUNCTION(serialize) PHP_VAR_SERIALIZE_INIT(var_hash); php_var_serialize(&buf, struc, &var_hash); PHP_VAR_SERIALIZE_DESTROY(var_hash); - smart_str_0(&buf); RETVAL_STRINGL(buf.c, buf.len, 0); }