hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/net/netfilter/nft_payload.c
....@@ -62,7 +62,7 @@
6262 return false;
6363
6464 if (offset + len > VLAN_ETH_HLEN + vlan_hlen)
65
- ethlen -= offset + len - VLAN_ETH_HLEN + vlan_hlen;
65
+ ethlen -= offset + len - VLAN_ETH_HLEN - vlan_hlen;
6666
6767 memcpy(dst_u8, vlanh + offset - vlan_hlen, ethlen);
6868
....@@ -110,7 +110,7 @@
110110 case NFT_PAYLOAD_TRANSPORT_HEADER:
111111 if (!pkt->tprot_set)
112112 goto err;
113
- offset = pkt->xt.thoff;
113
+ offset = nft_thoff(pkt);
114114 break;
115115 default:
116116 BUG();
....@@ -510,7 +510,7 @@
510510 *l4csum_offset = offsetof(struct tcphdr, check);
511511 break;
512512 case IPPROTO_UDP:
513
- if (!nft_payload_udp_checksum(skb, pkt->xt.thoff))
513
+ if (!nft_payload_udp_checksum(skb, nft_thoff(pkt)))
514514 return -1;
515515 fallthrough;
516516 case IPPROTO_UDPLITE:
....@@ -523,7 +523,7 @@
523523 return -1;
524524 }
525525
526
- *l4csum_offset += pkt->xt.thoff;
526
+ *l4csum_offset += nft_thoff(pkt);
527527 return 0;
528528 }
529529
....@@ -615,7 +615,7 @@
615615 case NFT_PAYLOAD_TRANSPORT_HEADER:
616616 if (!pkt->tprot_set)
617617 goto err;
618
- offset = pkt->xt.thoff;
618
+ offset = nft_thoff(pkt);
619619 break;
620620 default:
621621 BUG();
....@@ -646,7 +646,7 @@
646646 if (priv->csum_type == NFT_PAYLOAD_CSUM_SCTP &&
647647 pkt->tprot == IPPROTO_SCTP &&
648648 skb->ip_summed != CHECKSUM_PARTIAL) {
649
- if (nft_payload_csum_sctp(skb, pkt->xt.thoff))
649
+ if (nft_payload_csum_sctp(skb, nft_thoff(pkt)))
650650 goto err;
651651 }
652652