⬢ DragonFlyBSD Kernel Audit
DF-2441 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/disk/dm/device-mapper.c
+++ b/sys/dev/disk/dm/device-mapper.c
@@ -375,6 +375,13 @@
 	uint64_t start, end;
 	int bypass;
 
+	if (dmv == NULL) {
+		bp->b_error = ENXIO;
+		bp->b_resid = bp->b_bcount;
+		biodone(bio);
+		return 0;
+	}
+
 	buf_start = bio->bio_offset;
 	buf_len = bp->b_bcount;
 	issued_len = 0;
@@ -480,6 +487,9 @@
 	uint64_t start, end;
 	int error = 0;
 
+	if (dmv == NULL)
+		return (ENXIO);
+
 	buf_start = ap->a_offset;
 	buf_len = ap->a_length;
 	issued_len = 0;