DragonFlyBSD Kernel Audit
DF-1647 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/raid/vinum/vinumrequest.c b/sys/dev/raid/vinum/vinumrequest.c
--- a/sys/dev/raid/vinum/vinumrequest.c
+++ b/sys/dev/raid/vinum/vinumrequest.c
@@ -489,6 +489,8 @@
     switch (plex->organization) {
     case plex_concat:
 	sd = NULL;					    /* (keep compiler quiet) */
+	if (plex->subdisks == 0)
+		return REQUEST_DOWN;
 	for (sdno = 0; sdno < plex->subdisks; sdno++) {
 	    sd = &SD[plex->sdnos[sdno]];
 	    if (*diskaddr < sd->plexoffset)		    /* we must have a hole, */