Date: Sat, 10 Aug 2013 21:46:58 +0000 (UTC) From: Adrian Chadd <adrian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254196 - head/sys/net80211 Message-ID: <201308102146.r7ALkw2d095577@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: adrian Date: Sat Aug 10 21:46:58 2013 New Revision: 254196 URL: http://svnweb.freebsd.org/changeset/base/254196 Log: Add in missing m_free()'s during error conditions. Modified: head/sys/net80211/ieee80211_output.c Modified: head/sys/net80211/ieee80211_output.c ============================================================================== --- head/sys/net80211/ieee80211_output.c Sat Aug 10 21:42:14 2013 (r254195) +++ head/sys/net80211/ieee80211_output.c Sat Aug 10 21:46:58 2013 (r254196) @@ -396,6 +396,9 @@ ieee80211_start_pkt(struct ieee80211vap * Start method for vap's. All packets from the stack come * through here. We handle common processing of the packets * before dispatching them to the underlying device. + * + * if_transmit() requires that the mbuf be consumed by this call + * regardless of the return condition. */ int ieee80211_vap_transmit(struct ifnet *ifp, struct mbuf *m) @@ -410,6 +413,7 @@ ieee80211_vap_transmit(struct ifnet *ifp "%s: ignore queue, parent %s not up+running\n", __func__, parent->if_xname); /* XXX stat */ + m_freem(m); return (EINVAL); } if (vap->iv_state == IEEE80211_S_SLEEP) { @@ -417,6 +421,7 @@ ieee80211_vap_transmit(struct ifnet *ifp * In power save, wakeup device for transmit. */ ieee80211_new_state(vap, IEEE80211_S_RUN, 0); + m_freem(m); return (0); } /* @@ -435,6 +440,7 @@ ieee80211_vap_transmit(struct ifnet *ifp vap->iv_stats.is_tx_badstate++; IEEE80211_UNLOCK(ic); ifp->if_drv_flags |= IFF_DRV_OACTIVE; + m_freem(m); return (EINVAL); } IEEE80211_UNLOCK(ic);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308102146.r7ALkw2d095577>