⬢ DragonFlyBSD Kernel Audit
DF-2303 / 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-2303.fixed	2026-10-18 11:31:21.758323197 +0000
@@ -2730,8 +2730,14 @@
 					p += rlen;
 					/* this must be too long but harmless */
 					rlen = sizeof(pktbuf) - rlen;
-					if (rlen < 0)
-						kprintf("why rlen < 0\n");
+					if (rlen < 0) {
+						kprintf("fwohci_arcv: "
+						    "oversized header "
+						    "fragment, drop\n");
+						dbch->pdb_tr = NULL;
+						dbch->buf_offset = 0;
+						goto out;
+					}
 					bcopy(db_tr->buf, p, rlen);
 					ld += rlen;
 					len -= rlen;