⬢ DragonFlyBSD Kernel Audit
DF-2899 / fix.diff
← back to finding ↓ download raw
--- a/sys/kern/kern_fp.c
+++ b/sys/kern/kern_fp.c
@@ -493,6 +493,14 @@
 	pos = 0;
     } else {
 	/*
+	 * Make sure the device has not been revoked (mirrors kern_mmap).
+	 */
+	if (vp->v_type == VCHR && vp->v_rdev == NULL) {
+		error = EBADF;
+		goto done;
+	}
+
+	/*
 	 * cdevs does not provide private mappings of any kind.
 	 */
 	if (vp->v_type == VCHR &&