⬢ DragonFlyBSD Kernel Audit
DF-4592 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/raid/vinum/vinumio.c	2026-09-21 23:37:03.060829040 +0000
+++ b/sys/dev/raid/vinum/vinumio.c	2026-09-21 23:42:20.468698920 +0000
@@ -514,15 +514,23 @@
 	     */
 	    if (drivename[0] == '\0')
 		drivename = "*invalid*";
-	    ksnprintf(s,
-		configend - s,
-		"sd name %s drive %s plex %s len %llus driveoffset %llus state %s",
-		sd->name,
-		drivename,
-		vinum_conf.plex[sd->plexno].name,
-		(unsigned long long) sd->sectors,
-		(unsigned long long) sd->driveoffset,
-		sd_state(sd->state));
+	    if (sd->plexno >= 0)
+		ksnprintf(s, configend - s,
+		    "sd name %s drive %s plex %s len %llus driveoffset %llus state %s",
+		    sd->name,
+		    drivename,
+		    vinum_conf.plex[sd->plexno].name,
+		    (unsigned long long) sd->sectors,
+		    (unsigned long long) sd->driveoffset,
+		    sd_state(sd->state));
+	    else
+		ksnprintf(s, configend - s,
+		    "sd name %s drive %s len %llus driveoffset %llus state %s",
+		    sd->name,
+		    drivename,
+		    (unsigned long long) sd->sectors,
+		    (unsigned long long) sd->driveoffset,
+		    sd_state(sd->state));
 	    while (*s)
 		s++;					    /* find the end */
 	    if (sd->plexno >= 0)