DragonFlyBSD Kernel Audit
DF-2550 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index 0000000..1111111 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -3539,8 +3539,10 @@
 	 * so VINACTIVE is properly cleared.
 	 */
 	if ((error = vget(vp, LK_EXCLUSIVE)) == 0) {
-		if ((error = VOP_GETATTR(vp, &vattr)) != 0)
+		if ((error = VOP_GETATTR(vp, &vattr)) != 0) {
+			vput(vp);
 			return error;
+		}
 		o_uid = vattr.va_uid;
 		o_gid = vattr.va_gid;
 		size = vattr.va_size;