From 2867889202071a3160594e9d0ebe726bacc864cf Mon Sep 17 00:00:00 2001 From: Matheus Date: Mon, 28 Sep 2026 10:41:47 -0300 Subject: [PATCH] vfs: fix possible use-after-free --- kernel-src/fs/vfs.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel-src/fs/vfs.c b/kernel-src/fs/vfs.c index e556b366..4580ca7e 100644 --- a/kernel-src/fs/vfs.c +++ b/kernel-src/fs/vfs.c @@ -231,15 +231,16 @@ int vfs_open(vnode_t *ref, char *path, int flags, vnode_t **res) { vnode_t *new = tmp; err = VOP_OPEN(&new, flags, getcred()); + + // locked by vfs_lookup + VOP_UNLOCK(tmp); + if (err) { VOP_RELEASE(tmp); } else { *res = new != tmp ? new : tmp; } - // locked by vfs_lookup - VOP_UNLOCK(tmp); - return err; }