Commit cb6b2e11 authored by Moshe Shemesh's avatar Moshe Shemesh Committed by Jakub Kicinski
Browse files

devlink: Fix memleak in health diagnose callback



The callback devlink_nl_cmd_health_reporter_diagnose_doit() miss
devlink_fmsg_free(), which leads to memory leak.

Fix it by adding devlink_fmsg_free().

Fixes: e994a75f ("devlink: remove reporter reference counting")
Signed-off-by: default avatarMoshe Shemesh <moshe@nvidia.com>
Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
Link: https://lore.kernel.org/r/1675698976-45993-1-git-send-email-moshe@nvidia.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent f8175547
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -6626,18 +6626,22 @@ static int devlink_nl_cmd_health_reporter_diagnose_doit(struct sk_buff *skb,

	err = devlink_fmsg_obj_nest_start(fmsg);
	if (err)
		return err;
		goto out;

	err = reporter->ops->diagnose(reporter, fmsg, info->extack);
	if (err)
		return err;
		goto out;

	err = devlink_fmsg_obj_nest_end(fmsg);
	if (err)
		return err;
		goto out;

	return devlink_fmsg_snd(fmsg, info,
	err = devlink_fmsg_snd(fmsg, info,
			       DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE, 0);

out:
	devlink_fmsg_free(fmsg);
	return err;
}

static int