diff options
author | John Crispin <blogic@openwrt.org> | 2013-07-11 21:47:25 +0200 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2013-07-11 21:47:25 +0200 |
commit | 35560c7288919006a3daf57fe4dbfca82be4462f (patch) | |
tree | 712d68fc579c91ceb3350206839fca1a65256af0 | |
parent | 89eec0d61e15bd3c3cd83d24a17fa5894ae984c1 (diff) | |
download | unitd-35560c7288919006a3daf57fe4dbfca82be4462f.tar unitd-35560c7288919006a3daf57fe4dbfca82be4462f.zip |
fix wdt cloexec bug
Signed-off-by: John Crispin <blogic@openwrt.org>
-rw-r--r-- | watchdog.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -101,12 +101,14 @@ void watchdog_init(void) DEBUG(1, "Watchdog handover: fd=%s\n", env); wdt_fd = atoi(env); unsetenv("WDTFD"); + fcntl(wdt_fd, F_SETFD, fcntl(wdt_fd, F_GETFD) | FD_CLOEXEC); } else { wdt_fd = open("/dev/watchdog", O_WRONLY); + if ((getpid() != 1) && (wdt_fd >= 0)) + fcntl(wdt_fd, F_SETFD, fcntl(wdt_fd, F_GETFD) | FD_CLOEXEC); } if (wdt_fd < 0) return; - fcntl(wdt_fd, F_SETFD, fcntl(wdt_fd, F_GETFD) | FD_CLOEXEC); LOG("- watchdog -\n"); watchdog_timeout(30); watchdog_timeout_cb(&wdt_timeout); |