nvme: Fix memory leak on error path of nvme_init

The use of log_msg_ret to log a message and return an error meant that
memory allocated earlier in the function was not freed on this error
path. Instead log the message in the same way that log_msg_ret would do
and then goto the cleanup code to free the memory.

This issue found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
This commit is contained in:
Andrew Goodbody 2025-07-02 17:02:10 +01:00 committed by Tom Rini
parent 39b836d898
commit f074616014

View File

@ -912,8 +912,10 @@ int nvme_init(struct udevice *udev)
goto free_id;
ret = bootdev_setup_for_sibling_blk(ns_udev, "nvme_bootdev");
if (ret)
return log_msg_ret("bootdev", ret);
if (ret) {
log_err("bootdev: returning err=%d\n", ret);
goto free_id;
}
ret = blk_probe_or_unbind(ns_udev);
if (ret)