DragonFlyBSD Kernel Audit
DF-1571 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/disk/xdisk/xdisk.c b/sys/dev/disk/xdisk/xdisk.c
--- a/sys/dev/disk/xdisk/xdisk.c
+++ b/sys/dev/disk/xdisk/xdisk.c
@@ -832,7 +832,9 @@
 
 	if ((sc = ap->a_head.a_dev->si_drv1) == NULL)
 		return (ENXIO);
+	lockmgr(&xdisk_lk, LK_SHARED);
 	ap->a_result = sc->info.d_media_blocks;
+	lockmgr(&xdisk_lk, LK_RELEASE);
 	return (0);
 }