]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
OPP: of: Fix potential memory leak in opp_parse_supplies()
authorAbdun Nihaal <nihaal@cse.iitm.ac.in>
Mon, 11 May 2026 06:42:11 +0000 (12:12 +0530)
committerViresh Kumar <viresh.kumar@linaro.org>
Wed, 20 May 2026 07:53:37 +0000 (13:23 +0530)
The memory allocated for microvolt, microamp and microwatt is not freed
in one of the paths in opp_parse_supplies() which returns directly.
Fix that by adding a goto to the error unwind ladder.

Fixes: 2eedf62e66c2 ("OPP: decouple dt properties in opp_parse_supplies()")
Cc: stable@vger.kernel.org
Signed-off-by: Abdun Nihaal <nihaal@cse.iitm.ac.in>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
drivers/opp/of.c

index f96adfd5b21973538314197b82dc2f28ddc85dd1..c02e20632fa6458d7d6bc99682ef1ab2664a5b30 100644 (file)
@@ -673,7 +673,7 @@ static int opp_parse_supplies(struct dev_pm_opp *opp, struct device *dev,
         */
        if (unlikely(opp_table->regulator_count == -1)) {
                opp_table->regulator_count = 0;
-               return 0;
+               goto free_microwatt;
        }
 
        for (i = 0, j = 0; i < opp_table->regulator_count; i++) {
@@ -696,6 +696,7 @@ static int opp_parse_supplies(struct dev_pm_opp *opp, struct device *dev,
                        opp->supplies[i].u_watt = microwatt[i];
        }
 
+free_microwatt:
        kfree(microwatt);
 free_microamp:
        kfree(microamp);