⬢ DragonFlyBSD Kernel Audit
DF-2423 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/disk/ahci/ahci_pm.c	2026-10-19 11:28:51.507601970 +0000
+++ b/sys/dev/disk/ahci/ahci_pm.c	2026-10-19 11:28:51.515601867 +0000
@@ -975,6 +975,11 @@
 
 	xa = ahci_ata_get_xfer(ap, ap->ap_ata[15]);
 
+	if (xa == NULL) {
+		kprintf("%s: pm_read: no ccb available\n", PORTNAME(ap));
+		return (EBUSY);
+	}
+
 	xa->fis->type = ATA_FIS_TYPE_H2D;
 	xa->fis->flags = ATA_H2D_FLAGS_CMD | 15;
 	xa->fis->command = ATA_C_READ_PM;
@@ -1012,6 +1017,11 @@
 
 	xa = ahci_ata_get_xfer(ap, ap->ap_ata[15]);
 
+	if (xa == NULL) {
+		kprintf("%s: pm_write: no ccb available\n", PORTNAME(ap));
+		return (EBUSY);
+	}
+
 	xa->fis->type = ATA_FIS_TYPE_H2D;
 	xa->fis->flags = ATA_H2D_FLAGS_CMD | 15;
 	xa->fis->command = ATA_C_WRITE_PM;