cvs: php4 /ext/standard php_smart_str.h var.c

From: Date: Tue, 19 Mar 2002 11:25:23 +0000
Subject: cvs: php4 /ext/standard php_smart_str.h var.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-10408@lists.php.net to get a copy of this message
thies Tue Mar 19 06:25:23 2002 EDT Modified files: /php4/ext/standard php_smart_str.h var.c Log: fix #12793 - serialize will now spit a notice if the return value of __sleep is bogus. Index: php4/ext/standard/php_smart_str.h diff -u php4/ext/standard/php_smart_str.h:1.15 php4/ext/standard/php_smart_str.h:1.16 --- php4/ext/standard/php_smart_str.h:1.15 Thu Feb 28 03:26:48 2002 +++ php4/ext/standard/php_smart_str.h Tue Mar 19 06:25:21 2002 @@ -24,7 +24,7 @@ #include <stdlib.h> #include <zend.h> -#define smart_str_0(x) ((x)->c[(x)->len] = '\0') +#define smart_str_0(x) do { if ((x)->c) { (x)->c[(x)->len] = '\0'; } } while (0); #ifndef SMART_STR_PREALLOC #define SMART_STR_PREALLOC 128 Index: php4/ext/standard/var.c diff -u php4/ext/standard/var.c:1.137 php4/ext/standard/var.c:1.138 --- php4/ext/standard/var.c:1.137 Thu Mar 14 21:06:08 2002 +++ php4/ext/standard/var.c Tue Mar 19 06:25:21 2002 @@ -536,9 +536,15 @@ if (res == SUCCESS) { if (retval_ptr) { - if (HASH_OF(retval_ptr)) + if (HASH_OF(retval_ptr)) { php_var_serialize_class(buf, struc, retval_ptr, var_hash TSRMLS_CC); + } else { + php_error(E_NOTICE, "__sleep should return an array only " + "containing the names of instance-variables to " + "serialize."); + } + zval_ptr_dtor(&retval_ptr); } return; @@ -623,7 +629,12 @@ PHP_VAR_SERIALIZE_INIT(var_hash); php_var_serialize(&buf, struc, &var_hash TSRMLS_CC); PHP_VAR_SERIALIZE_DESTROY(var_hash); - RETVAL_STRINGL(buf.c, buf.len, 0); + + if (buf.c) { + RETURN_STRINGL(buf.c, buf.len, 0); + } else { + RETURN_NULL(); + } } /* }}} */

« previous php.cvs (#10408) next »