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