From 14c2ff9ab86edfebe82a960464b31c4c8998208b Mon Sep 17 00:00:00 2001 From: Antonio SJ Musumeci Date: Thu, 7 Apr 2022 13:39:20 -0400 Subject: [PATCH] Return ENOENT when dotdot for root node requested --- libfuse/lib/fuse.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libfuse/lib/fuse.c b/libfuse/lib/fuse.c index e6f2b930..418795d4 100644 --- a/libfuse/lib/fuse.c +++ b/libfuse/lib/fuse.c @@ -2037,11 +2037,11 @@ fuse_lib_lookup(fuse_req_t req, uint64_t parent, const char *name) { - struct fuse *f = req_fuse_prepare(req); - struct fuse_entry_param e; - char *path; int err; + char *path; struct node *dot = NULL; + struct fuse *f = req_fuse_prepare(req); + struct fuse_entry_param e = {0}; if(name[0] == '.') { @@ -2061,6 +2061,12 @@ fuse_lib_lookup(fuse_req_t req, } else if((name[1] == '.') && (name[2] == '\0')) { + if(parent == 1) + { + reply_entry(req,&e,-ENOENT); + return; + } + name = NULL; pthread_mutex_lock(&f->lock); parent = get_node(f,parent)->parent->nodeid;