OSDN Git Service

rtc: sun6i: ensure rtc is kfree'd on error
authorColin Ian King <colin.king@canonical.com>
Wed, 22 Nov 2017 17:16:18 +0000 (17:16 +0000)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>
Mon, 18 Dec 2017 22:05:10 +0000 (23:05 +0100)
The error return path on clk_data allocation failure does not kfree
the allocated rtc object. Fix this with a kfree of rtc on the error
exit path.

Detected by CoverityScan, CID#1452264 ("Resource Leak")

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
drivers/rtc/rtc-sun6i.c

index 3d2216c..5bc28ee 100644 (file)
@@ -201,8 +201,10 @@ static void __init sun6i_rtc_clk_init(struct device_node *node)
 
        clk_data = kzalloc(sizeof(*clk_data) + (sizeof(*clk_data->hws) * 2),
                           GFP_KERNEL);
-       if (!clk_data)
+       if (!clk_data) {
+               kfree(rtc);
                return;
+       }
 
        spin_lock_init(&rtc->lock);