diff options
author | sam <sam@FreeBSD.org> | 2005-07-07 02:55:04 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2005-07-07 02:55:04 +0000 |
commit | ee0f352bd101a476fd21844fbdee59d29a026442 (patch) | |
tree | c1b7d951e4616bcb565679b8737c31495aa556d5 /sys/dev/ipw | |
parent | 5b31b99954daa585036b676ec1e9271df6ab4fa7 (diff) | |
download | FreeBSD-src-ee0f352bd101a476fd21844fbdee59d29a026442.zip FreeBSD-src-ee0f352bd101a476fd21844fbdee59d29a026442.tar.gz |
reclaim mbuf when ieee80211_crypto_encap fails
Approved by: re (scottl)
Obtained from: netbsd
Diffstat (limited to 'sys/dev/ipw')
-rw-r--r-- | sys/dev/ipw/if_ipw.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/ipw/if_ipw.c b/sys/dev/ipw/if_ipw.c index bab7a72..7a52d32 100644 --- a/sys/dev/ipw/if_ipw.c +++ b/sys/dev/ipw/if_ipw.c @@ -1321,8 +1321,10 @@ ipw_tx_start(struct ifnet *ifp, struct mbuf *m0, struct ieee80211_node *ni) if (wh->i_fc[1] & IEEE80211_FC1_WEP) { k = ieee80211_crypto_encap(ic, ni, m0); - if (k == NULL) + if (k == NULL) { + m_freem(m0); return ENOBUFS; + } /* packet header may have moved, reset our local pointer */ wh = mtod(m0, struct ieee80211_frame *); |