DragonFlyBSD Kernel Audit
DF-1944 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/disk/nata/atapi-fd.c b/sys/dev/disk/nata/atapi-fd.c
--- a/sys/dev/disk/nata/atapi-fd.c
+++ b/sys/dev/disk/nata/atapi-fd.c
@@ -173,6 +173,11 @@
     
     if (((atadev->unit == ATA_MASTER) && !(ch->devices & ATA_ATAPI_MASTER)) ||
 	((atadev->unit == ATA_SLAVE) && !(ch->devices & ATA_ATAPI_SLAVE))) {
+	if (fdp) {
+		disk_invalidate(&fdp->disk);
+		disk_destroy(&fdp->disk);
+		devstat_remove_entry(&fdp->stats);
+	}
 	device_set_ivars(dev, NULL);
 	kfree(fdp, M_AFD);
 	return 1;