fix truncated monitor mode capture packets

This commit is contained in:
morrownr 2021-12-21 23:26:14 -06:00
parent 03822a5f91
commit 32a9de67ca

View File

@ -353,6 +353,7 @@ _pkt *rtw_os_alloc_msdu_pkt(union recv_frame *prframe, const u8 *da, const u8 *s
{ {
sub_skb = rtw_skb_clone(prframe->u.hdr.pkt); sub_skb = rtw_skb_clone(prframe->u.hdr.pkt);
if (sub_skb) { if (sub_skb) {
sub_skb->head = msdu;
sub_skb->data = msdu; sub_skb->data = msdu;
sub_skb->len = msdu_len; sub_skb->len = msdu_len;
skb_set_tail_pointer(sub_skb, msdu_len); skb_set_tail_pointer(sub_skb, msdu_len);
@ -618,8 +619,9 @@ void rtw_hostapd_mlme_rx(_adapter *padapter, union recv_frame *precv_frame)
if (skb == NULL) if (skb == NULL)
return; return;
skb->head = precv_frame->u.hdr.rx_head;
skb->data = precv_frame->u.hdr.rx_data; skb->data = precv_frame->u.hdr.rx_data;
skb->tail = precv_frame->u.hdr.rx_tail; skb_set_tail_pointer(skb, precv_frame->u.hdr.rx_tail - precv_frame->u.hdr.rx_data);
skb->len = precv_frame->u.hdr.len; skb->len = precv_frame->u.hdr.len;
/* pskb_copy = rtw_skb_copy(skb); /* pskb_copy = rtw_skb_copy(skb);
@ -661,6 +663,7 @@ int rtw_recv_monitor(_adapter *padapter, union recv_frame *precv_frame)
goto _recv_drop; goto _recv_drop;
} }
skb->head = precv_frame->u.hdr.rx_head;
skb->data = precv_frame->u.hdr.rx_data; skb->data = precv_frame->u.hdr.rx_data;
skb_set_tail_pointer(skb, precv_frame->u.hdr.len); skb_set_tail_pointer(skb, precv_frame->u.hdr.len);
skb->len = precv_frame->u.hdr.len; skb->len = precv_frame->u.hdr.len;
@ -685,6 +688,7 @@ inline void rtw_rframe_set_os_pkt(union recv_frame *rframe)
{ {
_pkt *skb = rframe->u.hdr.pkt; _pkt *skb = rframe->u.hdr.pkt;
skb->head = rframe->u.hdr.rx_head;
skb->data = rframe->u.hdr.rx_data; skb->data = rframe->u.hdr.rx_data;
skb_set_tail_pointer(skb, rframe->u.hdr.len); skb_set_tail_pointer(skb, rframe->u.hdr.len);
skb->len = rframe->u.hdr.len; skb->len = rframe->u.hdr.len;