DragonFlyBSD Kernel Audit
DF-0627 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netproto/smb/smb_iod.c b/sys/netproto/smb/smb_iod.c
--- a/sys/netproto/smb/smb_iod.c
+++ b/sys/netproto/smb/smb_iod.c
@@ -362,6 +362,10 @@
 					md_append_record(&rqp->sr_rp, m);
 				} else {
 					SMBRQ_SUNLOCK(rqp);
+					/* DF-0627: the freshly received chain was neither
+					 * attached (md_initm/md_append_record) nor freed;
+					 * free it here so it is not orphaned. */
+					m_freem(m);
 					SMBERROR("duplicate response %d (ignored)\n", mid);
 					break;
 				}