aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/hook_fusefs/hookfs.c')
-rw-r--r--src/hook_fusefs/hookfs.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/hook_fusefs/hookfs.c b/src/hook_fusefs/hookfs.c
index d6371dd..0bb3ce5 100644
--- a/src/hook_fusefs/hookfs.c
+++ b/src/hook_fusefs/hookfs.c
@@ -486,15 +486,14 @@ static int hookfs_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
snprintf(fullpath,MAXPATHLEN,"%s/%s",path,d->entry->d_name);
char abspath[MAXPATHLEN];
- realpath(fullpath,abspath);
-
- if(! is_event_allowed("stat",abspath,context->pid,stage)) {
- errno=2;
- log_event("stat",abspath,"DENIED",errno,stage);
- } else if (filler(buf, d->entry->d_name, &st, nextoff)) {
- break;
- }
-
+ if(realpath(fullpath,abspath)!=NULL) {
+ if(! is_event_allowed("stat",abspath,context->pid,stage)) {
+ errno=2;
+ log_event("stat",abspath,"DENIED",errno,stage);
+ } else if (filler(buf, d->entry->d_name, &st, nextoff)) {
+ break;
+ }
+ }
d->entry = NULL;
d->offset = nextoff;
}