diff options
Diffstat (limited to 'src/hook_fusefs/hookfs.c')
-rw-r--r-- | src/hook_fusefs/hookfs.c | 17 |
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; } |