From: Ilia Alshanetsky Date: Mon, 23 Jan 2006 15:24:10 +0000 (+0000) Subject: Fixed bug #36134 (DirectoryIterator constructor failed to detect empty X-Git-Tag: php-5.1.3RC1~216 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9cbc3ae264734895ad5c2dd4da97f9a8198185b9;p=php Fixed bug #36134 (DirectoryIterator constructor failed to detect empty directory names). --- diff --git a/NEWS b/NEWS index e6fdf2fb30..7efb32aaac 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,8 @@ PHP NEWS MYSQLI_TYPE_NEWDECIMAL and MYSQLI_TYPE_BIT. FR #36007. (Georg) - Fixed imagecolorallocate() and imagecolorallocatelapha() to return FALSE on error. (Pierre) +- Fixed bug #36134 (DirectoryIterator constructor failed to detect empty + directory names). (Ilia) - Fixed bug #36096 (oci_result() returns garbage after oci_fetch() failed). (Tony) - Fixed bug #36071 (Engine Crash related with 'clone'). (Dmitry) diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c index 3295e21558..249f427006 100755 --- a/ext/spl/spl_directory.c +++ b/ext/spl/spl_directory.c @@ -393,6 +393,12 @@ SPL_METHOD(DirectoryIterator, __construct) return; } + if (!len) { + php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC); + zend_throw_exception_ex(spl_ce_RuntimeException, 0 TSRMLS_CC, "Directory name must not be empty."); + return; + } + intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC); spl_filesystem_dir_open(intern, path TSRMLS_CC); intern->u.dir.is_recursive = instanceof_function(intern->std.ce, spl_ce_RecursiveDirectoryIterator TSRMLS_CC) ? 1 : 0;