Messages in this thread | | | Date | Wed, 25 Jan 2023 16:08:12 +0100 | From | Simon Horman <> | Subject | Re: [PATCH] i40e: Add checking for null for nlmsg_find_attr() |
| |
On Wed, Jan 25, 2023 at 05:13:28PM +0300, Natalia Petrova wrote: > The result of nlmsg_find_attr() 'br_spec' is dereferenced in > nla_for_each_nested, but it can take null value in 'nla_find' finction, > which will result in an error. > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Fixes: 51616018dd1b ("i40e: Add support for getlink, setlink ndo ops") > Signed-off-by: Natalia Petrova <n.petrova@fintech.ru> > --- > drivers/net/ethernet/intel/i40e/i40e_main.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c > index b36bf9c3e1e4..ed4be4ffeb09 100644 > --- a/drivers/net/ethernet/intel/i40e/i40e_main.c > +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c > @@ -13101,6 +13101,8 @@ static int i40e_ndo_bridge_setlink(struct net_device *dev, > } > > br_spec = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), IFLA_AF_SPEC); > + if (!br_spec) > + return -ENOENT;
Seems fine to me, but I wonder if -EINVAL is more appropriate. nlh is invalid in this case.
> > nla_for_each_nested(attr, br_spec, rem) { > __u16 mode; > -- > 2.34.1 >
| |