diff options
Diffstat (limited to 'Src')
-rw-r--r-- | Src/glob.c | 10 |
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))) { |