diff options
-rw-r--r-- | ext/standard/dir.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/ext/standard/dir.c b/ext/standard/dir.c index 4396a54566..cfa792f477 100644 --- a/ext/standard/dir.c +++ b/ext/standard/dir.c @@ -400,11 +400,16 @@ PHP_FUNCTION(glob) RETURN_FALSE; } +#ifndef GLOB_NOMATCH + // now catch the FreeBSD style of "no matches" + if (!globbuf.gl_pathc) { + array_init(return_value); + return; + } +#endif + /* we assume that any glob pattern will match files from one directory only so checking the dirname of the first match should be sufficient */ - if (!globbuf.gl_pathv) { - RETURN_FALSE; - } strncpy(cwd, globbuf.gl_pathv[0], MAXPATHLEN); if (PG(safe_mode) && (!php_checkuid(cwd, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { RETURN_FALSE; |