If cmd_db_magic_matches() fails after memremap() succeeds, the function
returns -EINVAL without unmapping the memory region, causing a
potential resource leak.
Add memunmap() call and set cmd_db_header to NULL before returning error
to properly clean up the mapped memory region.
Fixes: 312416d9171a ("drivers: qcom: add command DB driver")
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
---
drivers/soc/qcom/cmd-db.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/soc/qcom/cmd-db.c b/drivers/soc/qcom/cmd-db.c
index ae66c2623d25..50adf5249826 100644
--- a/drivers/soc/qcom/cmd-db.c
+++ b/drivers/soc/qcom/cmd-db.c
@@ -358,6 +358,8 @@ static int cmd_db_dev_probe(struct platform_device *pdev)
if (!cmd_db_magic_matches(cmd_db_header)) {
dev_err(&pdev->dev, "Invalid Command DB Magic\n");
+ memunmap(cmd_db_header);
+ cmd_db_header = NULL;
return -EINVAL;
}
--
2.50.1.windows.1