aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/netfilter/nf_socket_ipv4.c
diff options
context:
space:
mode:
authorMatteo Croce <mcroce@redhat.com>2019-11-02 01:12:04 +0100
committerDavid S. Miller <davem@davemloft.net>2019-11-05 14:03:11 -0800
commit54074f1dbd6fbc0f0a085a54f3297ae26e424d59 (patch)
tree92febdbde61f84d4ff24efe5db7520126522be56 /net/ipv4/netfilter/nf_socket_ipv4.c
parent15122464d525f684a61806d28597050cdcef0f32 (diff)
downloadlinux-54074f1dbd6fbc0f0a085a54f3297ae26e424d59.tar.gz
icmp: remove duplicate code
The same code which recognizes ICMP error packets is duplicated several times. Use the icmp_is_err() and icmpv6_is_err() helpers instead, which do the same thing. ip_multipath_l3_keys() and tcf_nat_act() didn't check for all the error types, assume that they should instead. Signed-off-by: Matteo Croce <mcroce@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/netfilter/nf_socket_ipv4.c')
-rw-r--r--net/ipv4/netfilter/nf_socket_ipv4.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/net/ipv4/netfilter/nf_socket_ipv4.c b/net/ipv4/netfilter/nf_socket_ipv4.c
index 36a28d46149c8a..c94445b44d8cf0 100644
--- a/net/ipv4/netfilter/nf_socket_ipv4.c
+++ b/net/ipv4/netfilter/nf_socket_ipv4.c
@@ -31,16 +31,8 @@ extract_icmp4_fields(const struct sk_buff *skb, u8 *protocol,
if (icmph == NULL)
return 1;
- switch (icmph->type) {
- case ICMP_DEST_UNREACH:
- case ICMP_SOURCE_QUENCH:
- case ICMP_REDIRECT:
- case ICMP_TIME_EXCEEDED:
- case ICMP_PARAMETERPROB:
- break;
- default:
+ if (!icmp_is_err(icmph->type))
return 1;
- }
inside_iph = skb_header_pointer(skb, outside_hdrlen +
sizeof(struct icmphdr),