On Thu, Jan 14, 2021 at 1:36 PM Jakub Kicinski <[email protected]> wrote:
>
> On Thu, 14 Jan 2021 13:07:49 -0800 Cong Wang wrote:
> > - if (msk_depth)
> > - nla_opt_msk = nla_next(nla_opt_msk,
> > &msk_depth);
> > break;
> > default:
> > NL_SET_ERR_MSG(extack, "Unknown tunnel option type");
> > return -EINVAL;
> > }
> > +
> > + if (!nla_opt_msk)
> > + continue;
>
> Why the switch from !msk_depth to !nla_opt_msk?
It is the same, when nla_opt_msk is NULL, msk_depth is 0.
Checking nla_opt_msk is NULL is more readable to express that
mask is not provided.
>
> Seems like previously providing masks for only subset of options
> would have worked.
I don't think so, every type has this check:
if (key->enc_opts.len != mask->enc_opts.len) {
NL_SET_ERR_MSG(extack, "Key and mask
miss aligned");
return -EINVAL;
}
which guarantees the numbers are aligned.
Thanks.