dmitry Wed Jun 24 08:53:18 2009 UTC Modified files: (Branch: PHP_5_3) /php-src NEWS /php-src/ext/spl spl_directory.c Log: Fixed bug #48643 (String functions memory issue) http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.965.2.645&r2=1.2027.2.547.2.965.2.646&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.965.2.645 php-src/NEWS:1.2027.2.547.2.965.2.646 --- php-src/NEWS:1.2027.2.547.2.965.2.645 Tue Jun 23 06:56:45 2009 +++ php-src/NEWS Wed Jun 24 08:53:17 2009 @@ -1,6 +1,7 @@ -PHP NEWS +PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2009, PHP 5.3.0 RC 5 +- Fixed bug #48643 (String functions memory issue). (Dmitry) - Fixed bug #48641 (tmpfile() uses old parameter parsing). (crrodriguez at opensuse dot org) - Fixed bug #48624 (.user.ini never gets parsed). (Pierre) http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_directory.c?r1=1.45.2.27.2.23.2.43&r2=1.45.2.27.2.23.2.44&diff_format=u Index: php-src/ext/spl/spl_directory.c diff -u php-src/ext/spl/spl_directory.c:1.45.2.27.2.23.2.43 php-src/ext/spl/spl_directory.c:1.45.2.27.2.23.2.44 --- php-src/ext/spl/spl_directory.c:1.45.2.27.2.23.2.43 Thu Jun 4 14:46:26 2009 +++ php-src/ext/spl/spl_directory.c Wed Jun 24 08:53:18 2009 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_directory.c,v 1.45.2.27.2.23.2.43 2009/06/04 14:46:26 colder Exp $ */ +/* $Id: spl_directory.c,v 1.45.2.27.2.23.2.44 2009/06/24 08:53:18 dmitry Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -1604,13 +1604,34 @@ switch (intern->type) { case SPL_FS_INFO: case SPL_FS_FILE: - ZVAL_STRINGL(writeobj, intern->file_name, intern->file_name_len, 1); + if (readobj == writeobj) { + zval retval; + zval *retval_ptr = &retval; + + ZVAL_STRINGL(retval_ptr, intern->file_name, intern->file_name_len, 1); + zval_dtor(readobj); + ZVAL_ZVAL(writeobj, retval_ptr, 0, 0); + } else { + ZVAL_STRINGL(writeobj, intern->file_name, intern->file_name_len, 1); + } return SUCCESS; case SPL_FS_DIR: - ZVAL_STRING(writeobj, intern->u.dir.entry.d_name, 1); + if (readobj == writeobj) { + zval retval; + zval *retval_ptr = &retval; + + ZVAL_STRING(retval_ptr, intern->u.dir.entry.d_name, 1); + zval_dtor(readobj); + ZVAL_ZVAL(writeobj, retval_ptr, 0, 0); + } else { + ZVAL_STRING(writeobj, intern->u.dir.entry.d_name, 1); + } return SUCCESS; } } + if (readobj == writeobj) { + zval_dtor(readobj); + } ZVAL_NULL(writeobj); return FAILURE; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php