Skip site navigation (1)Skip section navigation (2)
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>