From 4c96d26595054b02800476bd19b79d30773d33b2 Mon Sep 17 00:00:00 2001 From: Ales Musil Date: Thu, 29 Aug 2024 17:12:36 +0200 Subject: [PATCH] pinctrl: Explicitly set ICMPv6 code for packet too big. The ICMPv6 code was set to 1 which is wrong for the packet too big which is wrong, the code should always remain 0. This resulted in wrong csum being computed. Set the code to 0 explicitly. Fixes: 4725ad125b42 ("controller: Avoid double controller action for ICMP errors.") Reported-at: https://issues.redhat.com/browse/FDP-763 Acked-by: Dumitru Ceara Signed-off-by: Ales Musil Signed-off-by: Numan Siddique --- controller/pinctrl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/controller/pinctrl.c b/controller/pinctrl.c index 7cbb0cf812..c86b4f9401 100644 --- a/controller/pinctrl.c +++ b/controller/pinctrl.c @@ -1756,6 +1756,7 @@ pinctrl_handle_icmp(struct rconn *swconn, const struct flow *ip_flow, if (mtu) { put_16aligned_be32(ih->icmp6_data.be32, *mtu); ih->icmp6_base.icmp6_type = ICMP6_PACKET_TOO_BIG; + ih->icmp6_base.icmp6_code = 0; } void *data = ih + 1;