From 1fedf13839a2be4788bf99ae2073381cdadf5eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 20 Aug 2019 20:24:47 +0200 Subject: [PATCH] shared/watchdog: close watchdog device when done with it The file descriptor was opened with O_CLOEXEC, so in practice this doesn't change too much, but it seems cleaner to always close the old fd when changing the device path. --- src/shared/watchdog.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/shared/watchdog.c b/src/shared/watchdog.c index c423af6917..98fefb3956 100644 --- a/src/shared/watchdog.c +++ b/src/shared/watchdog.c @@ -82,7 +82,16 @@ static int open_watchdog(void) { } int watchdog_set_device(char *path) { - return free_and_strdup(&watchdog_device, path); + int r; + + r = free_and_strdup(&watchdog_device, path); + if (r < 0) + return r; + + if (r > 0) /* watchdog_device changed */ + watchdog_fd = safe_close(watchdog_fd); + + return r; } int watchdog_set_timeout(usec_t *usec) {