Author: avos
Date: Sat Jan 26 12:41:16 2019
New Revision: 343465
URL: https://svnweb.freebsd.org/changeset/base/343465

Log:
  MFC r343190:
  net80211: drop m_pullup call from ieee80211_crypto_decap.
  
  For most wireless drivers Rx mbuf is allocated as one
  contiguous chunk; only few are using chains for allocations -
  but even then at least MCLBYTES (minus Rx descriptor size) is
  available in the first mbuf.
  
  In addition to the above, m_pullup was never called here - otherwise,
  reallocation will break post-crypto_decap logic (ieee80211_decap,
  ieee80211_deliver_data...), so just remove it; length check is left
  in case if some truncated frame appears here.
  
  PR:           234241

Modified:
  stable/10/sys/net80211/ieee80211_crypto.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/net80211/ieee80211_crypto.c
==============================================================================
--- stable/10/sys/net80211/ieee80211_crypto.c   Sat Jan 26 12:35:06 2019        
(r343464)
+++ stable/10/sys/net80211/ieee80211_crypto.c   Sat Jan 26 12:41:16 2019        
(r343465)
@@ -601,14 +601,15 @@ ieee80211_crypto_decap(struct ieee80211_node *ni, stru
                k = &ni->ni_ucastkey;
 
        /*
-        * Insure crypto header is contiguous for all decap work.
+        * Insure crypto header is contiguous and long enough for all
+        * decap work.
         */
        cip = k->wk_cipher;
-       if (m->m_len < hdrlen + cip->ic_header &&
-           (m = m_pullup(m, hdrlen + cip->ic_header)) == NULL) {
+       if (m->m_len < hdrlen + cip->ic_header) {
                IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_CRYPTO, wh->i_addr2,
-                   "unable to pullup %s header", cip->ic_name);
-               vap->iv_stats.is_rx_wepfail++;  /* XXX */
+                   "frame is too short (%d < %u) for crypto decap",
+                   cip->ic_name, m->m_len, hdrlen + cip->ic_header);
+               vap->iv_stats.is_rx_tooshort++;
                return NULL;
        }
 
_______________________________________________
svn-src-stable-10@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10
To unsubscribe, send any mail to "svn-src-stable-10-unsubscr...@freebsd.org"

Reply via email to