Re: [PATCH] net: geneve: modify IP header check in geneve6_xmit_skb

From: Florian Westphal
Date: Wed Apr 21 2021 - 20:40:40 EST


Phillip Potter <phil@xxxxxxxxxxxxxxxx> wrote:
> Modify the check in geneve6_xmit_skb to use the size of a struct iphdr
> rather than struct ipv6hdr. This fixes two kernel selftest failures
> introduced by commit 6628ddfec758
> ("net: geneve: check skb is large enough for IPv4/IPv6 header"), without
> diminishing the fix provided by that commit.

What errors?

> Reported-by: kernel test robot <oliver.sang@xxxxxxxxx>
> Signed-off-by: Phillip Potter <phil@xxxxxxxxxxxxxxxx>
> ---
> drivers/net/geneve.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
> index 42f31c681846..a57a5e6f614f 100644
> --- a/drivers/net/geneve.c
> +++ b/drivers/net/geneve.c
> @@ -988,7 +988,7 @@ static int geneve6_xmit_skb(struct sk_buff *skb, struct net_device *dev,
> __be16 sport;
> int err;
>
> - if (!pskb_network_may_pull(skb, sizeof(struct ipv6hdr)))
> + if (!pskb_network_may_pull(skb, sizeof(struct iphdr)))
> return -EINVAL;

Seems this is papering over some bug, this change makes no sense to
me. Can you please explain this?