Re: [PATCH v4 1/2] drivers: net: prevent tun_build_skb() to exceed the packet size limit

From: Andrew Kanner
Date: Wed Aug 02 2023 - 08:31:36 EST


On Tue, Aug 01, 2023 at 07:07:39PM -0600, David Ahern wrote:
> On 8/1/23 4:07 PM, Andrew Kanner wrote:
> > @@ -1594,7 +1597,13 @@ static bool tun_can_build_skb(struct tun_struct *tun, struct tun_file *tfile,
> > if (zerocopy)
> > return false;
> >
> > - if (SKB_DATA_ALIGN(len + TUN_RX_PAD) +
> > + rcu_read_lock();
> > + xdp_prog = rcu_dereference(tun->xdp_prog);
> > + if (xdp_prog)
> > + pad += XDP_PACKET_HEADROOM;
> > + rcu_read_unlock();
>
>
> since you do not care about the actual xdp_prog (only that one is set) I
> believe you can use rcu_access_pointer here.

Good point. Thanks, David.

I'll resend both as v5.

The correct cc-list for PATCH 2/2 is also needed. It fixes
net/core/filter.c instead of drivers/net/tun.c now.

pw-bot: changes-requested

--
Andrew Kanner