mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
- Fixed memory leak when calling SplFileInfo's constructor twice
This commit is contained in:
parent
eac33b454c
commit
af2fc625df
1
NEWS
1
NEWS
@ -71,6 +71,7 @@ PHP NEWS
|
||||
chunksize length line is > 10 bytes). (Ilia)
|
||||
|
||||
- SPL
|
||||
. Fixed memory leak when calling SplFileInfo's constructor twice. (Felipe)
|
||||
. Fixed bug #61347 (inconsistent isset behavior of Arrayobject). (Laruence)
|
||||
. Fixed bug #61326 (ArrayObject comparison). (Gustavo)
|
||||
|
||||
|
@ -366,6 +366,10 @@ static zend_object_value spl_filesystem_object_clone(zval *zobject TSRMLS_DC)
|
||||
void spl_filesystem_info_set_filename(spl_filesystem_object *intern, char *path, int len, int use_copy TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
char *p1, *p2;
|
||||
|
||||
if (intern->file_name) {
|
||||
efree(intern->file_name);
|
||||
}
|
||||
|
||||
intern->file_name = use_copy ? estrndup(path, len) : path;
|
||||
intern->file_name_len = len;
|
||||
@ -386,7 +390,10 @@ void spl_filesystem_info_set_filename(spl_filesystem_object *intern, char *path,
|
||||
} else {
|
||||
intern->_path_len = 0;
|
||||
}
|
||||
|
||||
|
||||
if (intern->_path) {
|
||||
efree(intern->_path);
|
||||
}
|
||||
intern->_path = estrndup(path, intern->_path_len);
|
||||
} /* }}} */
|
||||
|
||||
|
11
ext/spl/tests/SplFileInfo_001.phpt
Normal file
11
ext/spl/tests/SplFileInfo_001.phpt
Normal file
@ -0,0 +1,11 @@
|
||||
--TEST--
|
||||
Testing SplFileInfo calling the constructor twice
|
||||
--FILE--
|
||||
<?php
|
||||
$x = new splfileinfo(1);
|
||||
$x->__construct(1);
|
||||
|
||||
echo "done!\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
done!
|
Loading…
Reference in New Issue
Block a user