Subject: Re: [Patch net] net_sched: add max len check for TCA_KIND

From: Jakub Kicinski <[email-masked]>
Date: Fri, 4 Oct 2019 16:47:01 -0700

On Fri, 4 Oct 2019 16:23:40 -0700, Cong Wang wrote:
> On Fri, Oct 4, 2019 at 3:54 PM Jakub Kicinski wrote:
> > On Thu, 3 Oct 2019 16:45:25 -0300, Marcelo Ricardo Leitner wrote:  
> > > On Sat, Sep 21, 2019 at 07:24:34PM -0700, Jakub Kicinski wrote:  
> > > > Applied, queued for 4.14+, thanks!  
> > >
> > > Ahm, this breaks some user applications.
> > >
> > > I'm getting "Attribute failed policy validation" extack error while
> > > adding ingress qdisc on an app using libmnl, because it just doesn't
> > > pack the null byte there if it uses mnl_attr_put_str():
> > > https://git.netfilter.org/libmnl/tree/src/attr.c#n481
> > > Unless it uses mnl_attr_put_strz() instead.
> > >
> > > Though not sure who's to blame here, as one could argue that the
> > > app should have been using the latter in the first place, but well..
> > > it worked and produced the right results.
> > >
> > > Ditto for 199ce850ce11 ("net_sched: add policy validation for action
> > > attributes") on TCA_ACT_KIND.  
> >
> > Thanks for the report Marcelo! This netlink validation stuff is always
> > super risky I figured better find out if something breaks sooner than
> > later, hence the backport.
> >
> > So if I'm understanding this would be the fix?  
> 
> Of course not, you just break KMSAN again. Please read the original
> report.

The fix for the regression. I'm establishing the rest of 199ce850ce11
("net_sched: add policy validation for action attributes") is fine.

I mentioned this brings back the problem KMSAN reported in the part of
the email you cut off. str*cpy is the obvious answer for reimplementing
that fix.

> I will send a patch

Please do.