]> git.baikalelectronics.ru Git - kernel.git/commitdiff
regulator: cros-ec-regulator: Fix double free of desc->name.
authorPi-Hsun Shih <pihsun@chromium.org>
Tue, 28 Jul 2020 09:19:09 +0000 (17:19 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 28 Jul 2020 15:53:14 +0000 (16:53 +0100)
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: 0b3d0da5cbee ("regulator: Add driver for cros-ec-regulator")
Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org>
Reviewed-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Link: https://lore.kernel.org/r/20200728091909.2009771-1-pihsun@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/cros-ec-regulator.c

index eeed5aac3f3228f218e105bc37e9d91c3e571d39..3117bbd2826b2d1e42db29853d2541f9e5a0ad92 100644 (file)
@@ -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[] = {