Re: [PATCH IPV6 1/1] ipv6: allocate enough headroom in ip6_finish_output2()

From: Jakub Kicinski
Date: Wed Jul 07 2021 - 14:30:32 EST


On Wed, 7 Jul 2021 19:41:44 +0200 Eric Dumazet wrote:
> On 7/7/21 6:42 PM, Jakub Kicinski wrote:
> > On Wed, 7 Jul 2021 08:45:13 -0600 David Ahern wrote:
> >> why not use hh_len here?
> >
> > Is there a reason for the new skb? Why not pskb_expand_head()?
>
>
> pskb_expand_head() might crash, if skb is shared.
>
> We possibly can add a helper, factorizing all this,
> and eventually use pskb_expand_head() if safe.

Is there a strategically placed skb_share_check() somewhere further
down? Otherwise there seems to be a lot of questionable skb_cow*()
calls, also __skb_linearize() and skb_pad() are risky, no?
Or is it that shared skbs are uncommon and syzbot doesn't hit them?