bnxt_en: fix memory leak in bnxt_nvm_test()
authorVikas Gupta <vikas.gupta@broadcom.com>
Mon, 17 Oct 2022 15:32:22 +0000 (11:32 -0400)
committerJakub Kicinski <kuba@kernel.org>
Wed, 19 Oct 2022 02:18:02 +0000 (19:18 -0700)
Free the kzalloc'ed buffer before returning in the success path.

Fixes: 5b6ff128fdf6 ("bnxt_en: implement callbacks for devlink selftests")
Signed-off-by: Vikas Gupta <vikas.gupta@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://lore.kernel.org/r/1666020742-25834-1-git-send-email-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c

index a36803e79e92e1b78147bb308020aba27f4384ab..8a6f788f6294459697ccec09e6177aa217eaa1f5 100644 (file)
@@ -613,6 +613,7 @@ static int bnxt_dl_reload_up(struct devlink *dl, enum devlink_reload_action acti
 
 static bool bnxt_nvm_test(struct bnxt *bp, struct netlink_ext_ack *extack)
 {
+       bool rc = false;
        u32 datalen;
        u16 index;
        u8 *buf;
@@ -632,20 +633,20 @@ static bool bnxt_nvm_test(struct bnxt *bp, struct netlink_ext_ack *extack)
 
        if (bnxt_get_nvram_item(bp->dev, index, 0, datalen, buf)) {
                NL_SET_ERR_MSG_MOD(extack, "nvm test vpd read error");
-               goto err;
+               goto done;
        }
 
        if (bnxt_flash_nvram(bp->dev, BNX_DIR_TYPE_VPD, BNX_DIR_ORDINAL_FIRST,
                             BNX_DIR_EXT_NONE, 0, 0, buf, datalen)) {
                NL_SET_ERR_MSG_MOD(extack, "nvm test vpd write error");
-               goto err;
+               goto done;
        }
 
-       return true;
+       rc = true;
 
-err:
+done:
        kfree(buf);
-       return false;
+       return rc;
 }
 
 static bool bnxt_dl_selftest_check(struct devlink *dl, unsigned int id,