The desc->name field is allocated with devm_kstrdup, but is also kfreed
on the error path, causing it to be double freed. Remove the kfree on
the error path.

Fixes: 8d9f8d57e023 ("regulator: Add driver for cros-ec-regulator")
Signed-off-by: Pi-Hsun Shih <[email protected]>
---
 drivers/regulator/cros-ec-regulator.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/regulator/cros-ec-regulator.c 
b/drivers/regulator/cros-ec-regulator.c
index 35f97246bc48..cee259eb0213 100644
--- a/drivers/regulator/cros-ec-regulator.c
+++ b/drivers/regulator/cros-ec-regulator.c
@@ -222,18 +222,13 @@ static int cros_ec_regulator_probe(struct platform_device 
*pdev)
 
        drvdata->dev = devm_regulator_register(dev, &drvdata->desc, &cfg);
        if (IS_ERR(drvdata->dev)) {
-               ret = PTR_ERR(drvdata->dev);
                dev_err(&pdev->dev, "Failed to register regulator: %d\n", ret);
-               goto free_name;
+               return PTR_ERR(drvdata->dev);
        }
 
        platform_set_drvdata(pdev, drvdata);
 
        return 0;
-
-free_name:
-       kfree(desc->name);
-       return ret;
 }
 
 static const struct of_device_id regulator_cros_ec_of_match[] = {

base-commit: 8d9f8d57e023893bfa708d83e3a787e77766a378
-- 
2.28.0.rc0.142.g3c755180ce-goog

Reply via email to