]> granicus.if.org Git - php/commitdiff
Fix validator for SplFileInfo constructor
authorEtienne Kneuss <colder@php.net>
Mon, 8 Aug 2011 12:05:34 +0000 (12:05 +0000)
committerEtienne Kneuss <colder@php.net>
Mon, 8 Aug 2011 12:05:34 +0000 (12:05 +0000)
ext/spl/spl_directory.c

index 21986e171be5d35835810b879f0d840d87f20ee3..8870926942752b673523bdaf0fc7a1fa17de6883 100755 (executable)
@@ -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()