DragonFlyBSD Kernel Audit
DF-1605 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/virtual/virtio/block/virtio_blk.c b/sys/dev/virtual/virtio/block/virtio_blk.c
--- a/sys/dev/virtual/virtio/block/virtio_blk.c
+++ b/sys/dev/virtual/virtio/block/virtio_blk.c
@@ -524,11 +524,15 @@
 {
 	struct vtblk_softc *sc;
 	cdev_t dev = ap->a_head.a_dev;
+	struct bio *bio = ap->a_bio;
 	sc = dev->si_drv1;
-	struct bio *bio = ap->a_bio;
+	if (sc == NULL) {
+		vtblk_finish_bio(bio, EINVAL);
+		return EINVAL;
+	}
 	struct vtblk_queue *q = &sc->vtblk_queues[sc->vtblk_vqmap[mycpuid]];
 
-	if (sc == NULL) {
+	if (0) {
 		vtblk_finish_bio(bio, EINVAL);
 		return EINVAL;
 	}