about summary refs log tree commit diff
path: root/Src/glob.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/glob.c')
-rw-r--r--Src/glob.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/Src/glob.c b/Src/glob.c
index c0d23aa00..a979674e3 100644
--- a/Src/glob.c
+++ b/Src/glob.c
@@ -2807,10 +2807,16 @@ qualsheval(char *name, struct stat *buf, off_t days, char *str)
 static int
 qualnonemptydir(char *name, struct stat *buf, off_t days, char *str)
 {
-    DIR *dirh = opendir(name);
+    DIR *dirh;
     struct dirent *de;
 
-    if (dirh == NULL)
+    if (!S_ISDIR(buf->st_mode))
+	return 0;
+
+    if (buf->st_nlink > 2)
+	return 1;
+
+    if (!(dirh = opendir(name)))
 	return 0;
 
     while ((de = readdir(dirh))) {