DragonFlyBSD Kernel Audit
DF-2949 / fix.diff
← back to finding ↓ download raw
--- a/sys/kern/tty_tty.c
+++ b/sys/kern/tty_tty.c
@@ -156,15 +156,15 @@ retry:
 		/*
 		 * Avoid a nasty race if we block while getting the lock.
 		 */
-		vref(ttyvp);
+		vhold(ttyvp);
 		error = vn_lock(ttyvp, LK_EXCLUSIVE | LK_RETRY |
 				       LK_FAILRECLAIM);
 		if (error) {
-			vrele(ttyvp);
+			vdrop(ttyvp);
 			goto retry;
 		}
 		if (ttyvp != cttyvp(p) || (ttyvp->v_flag & VCTTYISOPEN) == 0) {
 			kprintf("Warning: cttyclose: race avoided\n");
 			vn_unlock(ttyvp);
-			vrele(ttyvp);
+			vdrop(ttyvp);
 			goto retry;
 		}
 		vclrflags(ttyvp, VCTTYISOPEN);
@@ -172,7 +172,7 @@ retry:
 		error = VOP_CLOSE(ttyvp, FREAD|FWRITE, NULL);
 		vn_unlock(ttyvp);
-		vrele(ttyvp);
+		vdrop(ttyvp);
 	} else {
 		error = 0;
 	}