summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/dir.c11
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;