mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04: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
2 changed files with 9 additions and 0 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue