Просмотр исходного кода

netfilter: nf_tables: use skb->protocol instead of assuming ethernet header

Otherwise we may end up with incorrect network and transport header for
other protocols.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Pablo Neira Ayuso 10 лет назад
Родитель
Сommit
aa47e42c60
1 измененных файлов с 1 добавлено и 1 удалено
  1. 1 1
      net/netfilter/nf_tables_netdev.c

+ 1 - 1
net/netfilter/nf_tables_netdev.c

@@ -94,7 +94,7 @@ nft_do_chain_netdev(void *priv, struct sk_buff *skb,
 {
 {
 	struct nft_pktinfo pkt;
 	struct nft_pktinfo pkt;
 
 
-	switch (eth_hdr(skb)->h_proto) {
+	switch (skb->protocol) {
 	case htons(ETH_P_IP):
 	case htons(ETH_P_IP):
 		nft_netdev_set_pktinfo_ipv4(&pkt, skb, state);
 		nft_netdev_set_pktinfo_ipv4(&pkt, skb, state);
 		break;
 		break;