mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
icmp: ICMPV6: pass RFC 8335 reply messages to ping_rcv
The current icmp_rcv function drops all unknown ICMP types, including ICMP_EXT_ECHOREPLY (type 43). In order to parse Extended Echo Reply messages, we have to pass these packets to the ping_rcv function, which does not do any other filtering and passes the packet to the designated socket. Pass incoming RFC 8335 ICMP Extended Echo Reply packets to the ping_rcv handler instead of discarding the packet. Signed-off-by: Andreas Roeseler <andreas.a.roeseler@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
affb05d910
commit
314332023b
@ -1196,6 +1196,11 @@ int icmp_rcv(struct sk_buff *skb)
|
||||
goto success_check;
|
||||
}
|
||||
|
||||
if (icmph->type == ICMP_EXT_ECHOREPLY) {
|
||||
success = ping_rcv(skb);
|
||||
goto success_check;
|
||||
}
|
||||
|
||||
/*
|
||||
* 18 is the highest 'known' ICMP type. Anything else is a mystery
|
||||
*
|
||||
|
@ -916,6 +916,10 @@ static int icmpv6_rcv(struct sk_buff *skb)
|
||||
success = ping_rcv(skb);
|
||||
break;
|
||||
|
||||
case ICMPV6_EXT_ECHO_REPLY:
|
||||
success = ping_rcv(skb);
|
||||
break;
|
||||
|
||||
case ICMPV6_PKT_TOOBIG:
|
||||
/* BUGGG_FUTURE: if packet contains rthdr, we cannot update
|
||||
standard destination cache. Seems, only "advanced"
|
||||
|
Loading…
Reference in New Issue
Block a user