From ba870ee95abb577b043d605edcc99c76dd2e77af Mon Sep 17 00:00:00 2001 From: mux 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/dev/dc/if_dc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sys/dev/dc') diff --git a/sys/dev/dc/if_dc.c b/sys/dev/dc/if_dc.c index 99826ac..3f47992 100644 --- a/sys/dev/dc/if_dc.c +++ b/sys/dev/dc/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.1