Re: [PATCH net-next 0/3] make nla_nest_start() add NLA_F_NESTED flag

From: David Ahern
Date: Fri Apr 26 2019 - 11:00:20 EST


On 4/26/19 6:17 AM, Johannes Berg wrote:
> On Fri, 2019-04-26 at 13:56 +0200, Michal Kubecek wrote:
>
>>>> I suppose we should, at least the part that attribute with NLA_NESTED
>>>> policy has NLA_F_NESTED flag. I'm not so sure about the opposite (i.e.
>>>> that attributes with other policies do not have the flag) as when I was
>>>> checking where kernel accesses nlattr::nla_type directly rather than
>>>> with nla_type(), I stumbled upon an attribute NL80211_ATTR_VENDOR_DATA
>>>> which has policy NLA_BINARY but is sometimes a nest, AFAICS.
>>>
>>> I guess anyway we can only do it for *new* things, not really for all
>>> existing attributes.
>>
>> Right... but what I wanted to say is that if there is already (at least)
>> one attribute which may or may not be a nest, depending on a context, we
>> should expect there may be also new attributes like that in the future.
>
> Yeah, but we can handle that as we see it?
>
> I just reposted my strict validation series - maybe we can right now, as
> it's not released yet, quickly add an NL_VALIDATED_NESTED_FLAG or so to
> it?
>
> Do you want to take a stab at that? I have to go now, but I could check
> in the next few days.

What is a valid use case for an attribute sometimes being a nest and
sometimes not? That seems really weird to me (ie., wrong). They should
be 2 separate attributes even if the backend processing is the same.