Fix: pcap_activate status -8 and pcap_activate status -1

This commit is contained in:
kimocoder 2020-01-11 20:30:27 +01:00
parent 34d9a185d4
commit 34258e769f
3 changed files with 11 additions and 12 deletions

View File

@ -4413,7 +4413,7 @@ s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
unsigned char *pframe; unsigned char *pframe;
u8 dummybuf[32]; u8 dummybuf[32];
int len = skb->len, rtap_len; int len = skb->len, rtap_len, consume;
rtw_mstat_update(MSTAT_TYPE_SKB, MSTAT_ALLOC_SUCCESS, skb->truesize); rtw_mstat_update(MSTAT_TYPE_SKB, MSTAT_ALLOC_SUCCESS, skb->truesize);
@ -4431,13 +4431,17 @@ s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
if (unlikely(skb->len < rtap_len)) if (unlikely(skb->len < rtap_len))
goto fail; goto fail;
if (rtap_len != 12) { len -= sizeof(struct ieee80211_radiotap_header);
RTW_INFO("radiotap len (should be 14): %d\n", rtap_len); rtap_len -= sizeof(struct ieee80211_radiotap_header);
goto fail;
while(rtap_len) {
consume = rtap_len > sizeof(dummybuf) ? sizeof(dummybuf) : rtap_len;
_rtw_pktfile_read(&pktfile, dummybuf, consume);
rtap_len -= consume;
len -= consume;
} }
_rtw_pktfile_read(&pktfile, dummybuf, rtap_len-sizeof(struct ieee80211_radiotap_header));
len = len - rtap_len;
#endif #endif
pmgntframe = alloc_mgtxmitframe(pxmitpriv); pmgntframe = alloc_mgtxmitframe(pxmitpriv);
if (pmgntframe == NULL) { if (pmgntframe == NULL) {
rtw_udelay_os(500); rtw_udelay_os(500);

View File

@ -1,5 +1,5 @@
PACKAGE_NAME="realtek-rtl88xxau" PACKAGE_NAME="realtek-rtl88xxau"
PACKAGE_VERSION="5.6.4.2~20200104" PACKAGE_VERSION="5.6.4.2~20200111"
CLEAN="'make' clean" CLEAN="'make' clean"
BUILT_MODULE_NAME[0]=88XXau BUILT_MODULE_NAME[0]=88XXau
PROCS_NUM=`nproc` PROCS_NUM=`nproc`

View File

@ -4588,11 +4588,6 @@ static int rtw_cfg80211_monitor_if_xmit_entry(struct sk_buff *skb, struct net_de
if (unlikely(skb->len < rtap_len)) if (unlikely(skb->len < rtap_len))
goto fail; goto fail;
if (rtap_len != 14) {
RTW_INFO("radiotap len (should be 14): %d\n", rtap_len);
goto fail;
}
/* Skip the ratio tap header */ /* Skip the ratio tap header */
skb_pull(skb, rtap_len); skb_pull(skb, rtap_len);