[PATCH][next][V3] rtc: ds1307: check for failed memory allocation on wdt

From: Colin King
Date: Fri Apr 03 2020 - 07:05:01 EST


From: Colin Ian King <colin.king@xxxxxxxxxxxxx>

Currently a failed memory allocation will lead to a null pointer
dereference on point wdt. Fix this by checking for a failed
allocation and just returning.

Addresses-Coverity: ("Dereference null return")
Fixes: fd90d48db037 ("rtc: ds1307: add support for watchdog timer on ds1388")

Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
---

V2: move error exit label and remove a return statement, thanks to
Walter Harms for spotting this clean up.
V3: simplify, just bail out and return on detecting the out of memory
condition

---

drivers/rtc/rtc-ds1307.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
index fad042118862..49702942bb08 100644
--- a/drivers/rtc/rtc-ds1307.c
+++ b/drivers/rtc/rtc-ds1307.c
@@ -1673,6 +1673,8 @@ static void ds1307_wdt_register(struct ds1307 *ds1307)
return;

wdt = devm_kzalloc(ds1307->dev, sizeof(*wdt), GFP_KERNEL);
+ if (!wdt)
+ return;

wdt->info = &ds1388_wdt_info;
wdt->ops = &ds1388_wdt_ops;
--
2.25.1