In ip6_parse_tlv(), recompute the network header pointer once regardless
of the option processed (Hbh or Dest), as missing recomputation for
specific options has caused issues in the past.
Signed-off-by: Justin Iurman <justin.iurman@gmail.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260602213033.12244-1-justin.iurman@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
case IPV6_TLV_IOAM:
if (!ipv6_hop_ioam(skb, off))
return false;
-
- nh = skb_network_header(skb);
break;
case IPV6_TLV_JUMBO:
if (!ipv6_hop_jumbo(skb, off))
return false;
-
- nh = skb_network_header(skb);
break;
case IPV6_TLV_CALIPSO:
if (!ipv6_hop_calipso(skb, off))
case IPV6_TLV_HAO:
if (!ipv6_dest_hao(skb, off))
return false;
-
- nh = skb_network_header(skb);
break;
#endif
default:
}
}
padlen = 0;
+
+ /* recompute the network header pointer in case it has changed */
+ nh = skb_network_header(skb);
}
off += optlen;
len -= optlen;