From 3d6ae7e0476f83adfa276a6c74bba484742fe9b6 Mon Sep 17 00:00:00 2001 From: Maxime Henrion Date: Sun, 6 Jul 2003 14:39:45 +0000 Subject: Fix a bug that could cause dc(4) to m_freem() an already freed mbuf or something that isn't an mbuf. MFC after: 3 days --- sys/pci/if_dc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sys/pci/if_dc.c') diff --git a/sys/pci/if_dc.c b/sys/pci/if_dc.c index 99826ac31287..3f479926aebc 100644 --- a/sys/pci/if_dc.c +++ b/sys/pci/if_dc.c @@ -3539,7 +3539,8 @@ dc_stop(struct dc_softc *sc) */ for (i = 0; i < DC_TX_LIST_CNT; i++) { if (cd->dc_tx_chain[i] != NULL) { - if (ld->dc_tx_list[i].dc_ctl & DC_TXCTL_SETUP) { + if ((ld->dc_tx_list[i].dc_ctl & DC_TXCTL_SETUP) || + !(ld->dc_tx_list[i].dc_ctl & DC_TXCTL_LASTFRAG)) { cd->dc_tx_chain[i] = NULL; continue; } -- cgit v1.2.3