From 67cd6cafeb4587ff3f7e78f7981223892bf0602b Mon Sep 17 00:00:00 2001 From: Matheus Date: Fri, 13 Dec 2024 21:50:00 -0300 Subject: [PATCH] vfs: properly handle empty paths --- kernel-src/fs/vfs.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/kernel-src/fs/vfs.c b/kernel-src/fs/vfs.c index 61cd6ff5..1f53c2bb 100644 --- a/kernel-src/fs/vfs.c +++ b/kernel-src/fs/vfs.c @@ -708,20 +708,8 @@ int vfs_lookup(vnode_t **result, vnode_t *start, char *path, char *lastcomp, int size_t pathlen = strlen(path); - if (pathlen == 0) { - if (flags & VFS_LOOKUP_PARENT) { - return ENOENT; - } - - vnode_t *r = start; - int e = highestnodeinmp(start, &r); - if (e) - return e; - - VOP_HOLD(r); - *result = r; - return 0; - } + if (pathlen == 0) + return ENOENT; if (pathlen > PATHNAME_MAX) return ENAMETOOLONG; @@ -744,6 +732,7 @@ int vfs_lookup(vnode_t **result, vnode_t *start, char *path, char *lastcomp, int vnode_t *next; error = 0; + VOP_HOLD(current); VOP_LOCK(current);