Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Apr 2007 11:24:24 GMT
From:      Sepherosa Ziehau <sephe@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 117268 for review
Message-ID:  <200704031124.l33BOOZl065775@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=117268

Change 117268 by sephe@sephe_zealot:sam_wifi on 2007/04/03 11:24:16

	Prevent node refcnt leakage on error handling path.

Affected files ...

.. //depot/projects/wifi/sys/dev/ral/rt2560.c#16 edit
.. //depot/projects/wifi/sys/dev/ral/rt2661.c#10 edit

Differences ...

==== //depot/projects/wifi/sys/dev/ral/rt2560.c#16 (text) ====

@@ -1983,9 +1983,10 @@
 			if (bpf_peers_present(ic->ic_rawbpf))
 				bpf_mtap(ic->ic_rawbpf, m0);
 
-			if (rt2560_tx_mgt(sc, m0, ni) != 0)
+			if (rt2560_tx_mgt(sc, m0, ni) != 0) {
+				ieee80211_free_node(ni);
 				break;
-
+			}
 		} else {
 			if (ic->ic_state != IEEE80211_S_RUN)
 				break;

==== //depot/projects/wifi/sys/dev/ral/rt2661.c#10 (text) ====

@@ -1751,9 +1751,10 @@
 			if (bpf_peers_present(ic->ic_rawbpf))
 				bpf_mtap(ic->ic_rawbpf, m0);
 
-			if (rt2661_tx_mgt(sc, m0, ni) != 0)
+			if (rt2661_tx_mgt(sc, m0, ni) != 0) {
+				ieee80211_free_node(ni);
 				break;
-
+			}
 		} else {
 			if (ic->ic_state != IEEE80211_S_RUN)
 				break;
@@ -1790,6 +1791,7 @@
 				/* there is no place left in this ring */
 				IFQ_DRV_PREPEND(&ifp->if_snd, m0);
 				ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+				ieee80211_free_node(ni);
 				break;
 			}
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200704031124.l33BOOZl065775>