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.