Subject: Re: [syzbot] [bpf?] [net?] WARNING in skb_ensure_writable

From: Florian Westphal <[email-masked]>
Date: Mon, 22 Apr 2024 16:52:55 +0200

Eric Dumazet <[email-masked]> wrote:
> Hmm... Not sure how to deal with this one... this is a 'false positive'
> 
> diff --git a/net/core/filter.c b/net/core/filter.c
> index 58e8e1a70aa752a2c045117e00d8797478da4738..a7cea6d717ef321215bc4cf9ab3b83535c4eec98
> 100644
> --- a/net/core/filter.c
> +++ b/net/core/filter.c
> @@ -1662,6 +1662,11 @@ static DEFINE_PER_CPU(struct bpf_scratchpad, bpf_sp);
>  static inline int __bpf_try_make_writable(struct sk_buff *skb,
>                                           unsigned int write_len)
>  {
> +#if defined(CONFIG_DEBUG_NET)
> +       /* Avoid a splat in pskb_may_pull_reason() */
> +       if (write_len > INT_MAX)
> +               return -EINVAL;
> +#endif
>         return skb_ensure_writable(skb, write_len);
>  }
> 

LGTM, thanks Eric.  I think the current 'warn on > INT_MAX' makes sense
for normal (non-bpf) callers.