diff options
author | 2020-06-02 02:26:36 +0000 | |
---|---|---|
committer | 2020-06-02 02:26:36 +0000 | |
commit | 2ef15e104c045a1170e38c482ee20946fc3c4282 (patch) | |
tree | 9a900f0381cc1f03a52ceeb2217e896fbeb90b3c | |
parent | When the set of ports in an aggr changes, set the aggr capabilities to (diff) | |
download | wireguard-openbsd-2ef15e104c045a1170e38c482ee20946fc3c4282.tar.xz wireguard-openbsd-2ef15e104c045a1170e38c482ee20946fc3c4282.zip |
Add missing ieee80211_release_node() calls in cases where hardware
decryption failed. The node here is always ic_bss, for which the
reference count isn't actually used (it's always freed when the interface
detaches), so missing these calls wasn't really a problem.
ok stsp@
-rw-r--r-- | sys/dev/pci/if_iwm.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/pci/if_iwm.c b/sys/dev/pci/if_iwm.c index 25849cb2464..69c252f4e8a 100644 --- a/sys/dev/pci/if_iwm.c +++ b/sys/dev/pci/if_iwm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_iwm.c,v 1.310 2020/05/23 08:42:51 stsp Exp $ */ +/* $OpenBSD: if_iwm.c,v 1.311 2020/06/02 02:26:36 jmatthew Exp $ */ /* * Copyright (c) 2014, 2016 genua gmbh <info@genua.de> @@ -3992,6 +3992,7 @@ iwm_rx_frame(struct iwm_softc *sc, struct mbuf *m, int chanidx, ic->ic_stats.is_ccmp_dec_errs++; ifp->if_ierrors++; m_freem(m); + ieee80211_release_node(ic, ni); return; } /* Check whether decryption was successful or not. */ @@ -4003,11 +4004,13 @@ iwm_rx_frame(struct iwm_softc *sc, struct mbuf *m, int chanidx, ic->ic_stats.is_ccmp_dec_errs++; ifp->if_ierrors++; m_freem(m); + ieee80211_release_node(ic, ni); return; } if (iwm_ccmp_decap(sc, m, ni) != 0) { ifp->if_ierrors++; m_freem(m); + ieee80211_release_node(ic, ni); return; } rxi->rxi_flags |= IEEE80211_RXI_HWDEC; |