⬢ DragonFlyBSD Kernel Audit
DF-2302 / fix.diff
← back to finding ↓ download raw
--- /home/maxx/dfbsd/dfbsd/sys/bus/firewire/fwohci.c	2026-06-29 12:51:18.000000000 +0000
+++ fwohci.DF-2302.fixed	2026-10-18 12:37:17.467901797 +0000
@@ -1163,7 +1163,8 @@
 	if ((dbch->flags & FWOHCI_DBCH_INIT) == 0)
 		return;
 
-	for(db_tr = STAILQ_FIRST(&dbch->db_trq), idb = 0; idb < dbch->ndb;
+	for(db_tr = STAILQ_FIRST(&dbch->db_trq), idb = 0;
+			db_tr != NULL && idb < dbch->ndb;
 			db_tr = STAILQ_NEXT(db_tr, link), idb++){
 		if ((dbch->xferq.flag & FWXFERQ_EXTBUF) == 0 &&
 					db_tr->buf != NULL) {
@@ -1176,7 +1177,8 @@
 	dbch->ndb = 0;
 	db_tr = STAILQ_FIRST(&dbch->db_trq);
 	fwdma_free_multiseg(dbch->am);
-	kfree(db_tr, M_FW);
+	if (db_tr != NULL)
+		kfree(db_tr, M_FW);
 	STAILQ_INIT(&dbch->db_trq);
 	dbch->flags &= ~FWOHCI_DBCH_INIT;
 }