DF-2302 / fix.diff
--- /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; } |