Re: [PATCH 5.10 1/1] i40e: Add checking for null for nlmsg_find_attr()

From: Jesse Brandeburg
Date: Thu Jan 26 2023 - 14:59:50 EST


On 1/26/2023 11:55 AM, Jesse Brandeburg wrote:
On 1/26/2023 5:55 AM, 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() 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@xxxxxxxxxx>
---
  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 53d0083e35da..4626d2a1af91 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -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;

Makes sense to me. Thanks.

Reviewed-by: Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx>


I presume that you meant this to be targeted to the "net" tree, which you should indicate with the subject line:
[PATCH net ...]

as per the netdev rules published [1], and generally you don't need a cover letter for a single patch.

[1] https://www.kernel.org/doc/html/v5.10/networking/netdev-FAQ.html