On Fri, 14 Dec 2018 12:58:13 -0700, David Ahern wrote:
> On 12/14/18 12:54 PM, Jakub Kicinski wrote:
> > On Fri, 14 Dec 2018 12:42:21 -0700, David Ahern wrote:  
> >> On 12/14/18 12:37 PM, Jakub Kicinski wrote:  
> >>> Oh, so we'd use the STRICT checking in doit for the first time?  I
> >>> better send that rename patch then..    
> >>
> >> IMHO, no. The flag is for older userspace that could be sending junk in
> >> the request. All new code should do strict checking without the flag set
> >> to ensure only proper requests are handled.  
> > 
> > I'm going back and forth on that in my head.  IDK if new user space
> > shouldn't be able to do a get request on an old kernel which doesn't
> > understand some of the attributes.  Grey area.. perhaps it needs to be
> > decided on case by case basis?  For my stats work I think returning too
> > many stats if what is affectively a filter is not understood may be a
> > good option.  Perhaps for fdb get it makes more sense to error out.
> > hmm..
> 
> I am referring to new code as in what Roopa is doing here -- adding a
> whole new feature (support for RTM_GETNEIGH for PF_BRIDGE). There is no
> support today, so no way it impacts existing userspace.
> 
> In cases where there is a handler for the operation, then, yes, the
> strict flag is needed for any new kernel side filtering to ensure the
> request is parsed properly.

Ack.  So for those new handlers we would never allow the behaviour of
ignoring unknown attributes?  Perhaps I'm over-thinking this, but maybe
we should then just require the STRICT flag on the socket, and if not
set return -EINVAL?  Slightly more consistent behaviour, and it gives
us a clean way out if someone has a strong use case for ignoring the
attributes.  

Just spit balling here, I'm happy either way.

Reply via email to