mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
vfs: fix possible use-after-free
This commit is contained in:
+4
-3
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user