summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEtienne Kneuss <colder@php.net>2011-08-08 12:05:34 +0000
committerEtienne Kneuss <colder@php.net>2011-08-08 12:05:34 +0000
commit482e4b9d703d7b4dba99b70ae9965faa0f727d58 (patch)
tree9d6e68a12de3bb2341d574e1b9bc0a469e82655c
parent7f203d43853b63a467c8d8562838b026f43b87f8 (diff)
downloadphp-git-482e4b9d703d7b4dba99b70ae9965faa0f727d58.tar.gz
Fix validator for SplFileInfo constructor
-rwxr-xr-xext/spl/spl_directory.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c
index 21986e171b..8870926942 100755
--- a/ext/spl/spl_directory.c
+++ b/ext/spl/spl_directory.c
@@ -633,6 +633,7 @@ static int spl_filesystem_object_constructor_validator(void *object_data TSRMLS_
* constructor or cleared its exception */
return (fsobj->u.dir.entry.d_name[0] != '\0' /* GlobIterator */ ||
+ fsobj->_path != NULL /* SplFileInfo */ ||
fsobj->orig_path != NULL /* Spl[Temp]FileObject */);
}
/* }}} */
@@ -2431,7 +2432,9 @@ SPL_METHOD(SplFileObject, setFlags)
{
spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &intern->flags);
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &intern->flags) == FAILURE) {
+ return;
+ }
} /* }}} */
/* {{{ proto int SplFileObject::getFlags()