netfilter: fix sparse warnings in reject handling
Subsystems (3)
Florian Westphal
maintainerPATCH 1/1 netfilter: fix sparse warnings in reject handling
make C=1 CF=-D__CHECK_ENDIAN__ shows following:
net/bridge/netfilter/nft_reject_bridge.c:65:50: warning: incorrect type in argument 3 (different base types)net/bridge/netfilter/nft_reject_bridge.c:65:50: expected restricted __be16 [usertype] protocol [..]net/bridge/netfilter/nft_reject_bridge.c:102:37: warning: cast from restricted __be16 net/bridge/netfilter/nft_reject_bridge.c:102:37: warning: incorrect type in argument 1 (different base types) [..] net/bridge/netfilter/nft_reject_bridge.c:121:50: warning: incorrect type in argument 3 (different base types) [..] net/bridge/netfilter/nft_reject_bridge.c:168:52: warning: incorrect type in argument 3 (different base types) [..] net/bridge/netfilter/nft_reject_bridge.c:233:52: warning: incorrect type in argument 3 (different base types) [..]
Caused by two (harmless) errors:
1. htons() instead of ntohs()
2. __be16 for protocol in nf_reject_ipXhdr_put API, use u8 instead.
--- include/net/netfilter/ipv4/nf_reject.h | 2 +- include/net/netfilter/ipv6/nf_reject.h | 2 +- net/bridge/netfilter/nft_reject_bridge.c | 2 +- net/ipv4/netfilter/nf_reject_ipv4.c | 2 +- net/ipv6/netfilter/nf_reject_ipv6.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-)
include/net/netfilter/ipv4/nf_reject.h +1 -1
@@ -12,7 +12,7 @@ const struct tcphdr *nf_reject_ip_tcphdr_get(struct sk_buff *oldskb, struct tcphdr *_oth, int hook);struct iphdr *nf_reject_iphdr_put (struct sk_buff *nskb,const struct sk_buff *oldskb, -__be16 protocol,int ttl); +__u8 protocol,int ttl);void nf_reject_ip_tcphdr_put (struct sk_buff *nskb,const struct sk_buff *oldskb,const struct tcphdr *oth);
include/net/netfilter/ipv6/nf_reject.h +1 -1
@@ -13,7 +13,7 @@ const struct tcphdr *nf_reject_ip6_tcphdr_get(struct sk_buff *oldskb, unsigned int *otcplen, int hook);struct ipv6hdr *nf_reject_ip6hdr_put (struct sk_buff *nskb,const struct sk_buff *oldskb, -__be16 protocol,int hoplimit); +__u8 protocol,int hoplimit);void nf_reject_ip6_tcphdr_put (struct sk_buff *nskb,const struct sk_buff *oldskb,const struct tcphdr *oth,unsigned int otcplen);
net/bridge/netfilter/nft_reject_bridge.c +1 -1
@@ -99,7 +99,7 @@ static void nft_reject_br_send_v4_unreach(struct sk_buff *oldskb,if (!pskb_may_pull (oldskb, len))return ; -if (pskb_trim_rcsum (oldskb,htons (ip_hdr (oldskb)->tot_len))) +if (pskb_trim_rcsum (oldskb,ntohs (ip_hdr (oldskb)->tot_len)))return ; if (ip_hdr(oldskb)->protocol == IPPROTO_TCP ||
net/ipv4/netfilter/nf_reject_ipv4.c +1 -1
@@ -43,7 +43,7 @@ EXPORT_SYMBOL_GPL(nf_reject_ip_tcphdr_get);struct iphdr *nf_reject_iphdr_put (struct sk_buff *nskb,const struct sk_buff *oldskb, -__be16 protocol,int ttl) +__u8 protocol,int ttl) {struct iphdr *niph, *oiph =ip_hdr (oldskb);
net/ipv6/netfilter/nf_reject_ipv6.c +1 -1
@@ -65,7 +65,7 @@ EXPORT_SYMBOL_GPL(nf_reject_ip6_tcphdr_get);struct ipv6hdr *nf_reject_ip6hdr_put (struct sk_buff *nskb,const struct sk_buff *oldskb, -__be16 protocol,int hoplimit) +__u8 protocol,int hoplimit) {struct ipv6hdr *ip6h;const struct ipv6hdr *oip6h =ipv6_hdr (oldskb);
Signature · 1 line
2.0.5
Quoted 10 lines · Florian Westphal
make C=1 CF=-D__CHECK_ENDIAN__ shows following:
net/bridge/netfilter/nft_reject_bridge.c:65:50: warning: incorrect type in argument 3 (different base types)net/bridge/netfilter/nft_reject_bridge.c:65:50: expected restricted__be16[usertype] protocol [..]net/bridge/netfilter/nft_reject_bridge.c:102:37: warning: cast from restricted__be16net/bridge/netfilter/nft_reject_bridge.c:102:37: warning: incorrect type in argument 1 (different base types) [..]net/bridge/netfilter/nft_reject_bridge.c:121:50: warning: incorrect type in argument 3 (different base types) [..]net/bridge/netfilter/nft_reject_bridge.c:168:52: warning: incorrect type in argument 3 (different base types) [..]net/bridge/netfilter/nft_reject_bridge.c:233:52: warning: incorrect type in argument 3 (different base types) [..]
Quoted 3 lines
Caused by two (harmless) errors:
1.htons()instead ofntohs()
2.__be16for protocol innf_reject_ipXhdr_putAPI, use u8 instead.
Applied, thanks. I'll pass to David a small pull request to focus on resolving the existing issues first.