- Fixed memory leak when calling SplFileInfo's constructor twice

This commit is contained in:
Felipe Pena 2012-03-11 15:42:57 +00:00
parent b7ae5e0d86
commit 80cb6e56f6
2 changed files with 19 additions and 1 deletions

View File

@ -376,6 +376,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;
@ -396,7 +400,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);
} /* }}} */

View 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!