]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
i40e: Add checking for null for nlmsg_find_attr()
authorNatalia Petrova <n.petrova@fintech.ru>
Thu, 9 Feb 2023 17:28:33 +0000 (09:28 -0800)
committerJakub Kicinski <kuba@kernel.org>
Sat, 11 Feb 2023 03:51:35 +0000 (19:51 -0800)
The result of nlmsg_find_attr() 'br_spec' is dereferenced in
nla_for_each_nested(), but it can take NULL value in nla_find() function,
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>
Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Link: https://lore.kernel.org/r/20230209172833.3596034-1-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/intel/i40e/i40e_main.c

index 53d0083e35dafed776bb2570bf3fa2086df082b4..4626d2a1af91caf93cec814d428b76a94581568e 100644 (file)
@@ -13167,6 +13167,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 -EINVAL;
 
        nla_for_each_nested(attr, br_spec, rem) {
                __u16 mode;