← Commit list

cfa2b3a20

Denis Vlasenko
Denis Vlasenko
2007-03-14
FAILED Duration: 11s

Subject

watchdog: don't use static variable

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

miscutils/watchdog.c+9 -9
@@ -13,13 +13,12 @@
#define OPT_FOREGROUND 0x01
#define OPT_TIMER 0x02
-/* Watchdog file descriptor */
-static int fd;
-
-static void watchdog_shutdown(int ATTRIBUTE_UNUSED unused)
+static void watchdog_shutdown(int ATTRIBUTE_UNUSED sig) ATTRIBUTE_NORETURN;
+static void watchdog_shutdown(int ATTRIBUTE_UNUSED sig)
{
- write(fd, "V", 1); /* Magic, see watchdog-api.txt in kernel */
- close(fd);
+ write(3, "V", 1); /* Magic, see watchdog-api.txt in kernel */
+ if (ENABLE_FEATURE_CLEAN_UP)
+ close(3);
exit(0);
}
@@ -49,18 +48,19 @@ int watchdog_main(int argc, char **argv)
signal(SIGHUP, watchdog_shutdown);
signal(SIGINT, watchdog_shutdown);
- fd = xopen(argv[argc - 1], O_WRONLY);
+ /* Use known fd # - avoid needing global 'int fd' */
+ dup2(xopen(argv[argc - 1], O_WRONLY), 3);
while (1) {
/*
* Make sure we clear the counter before sleeping, as the counter value
* is undefined at this point -- PFM
*/
- write(fd, "\0", 1);
+ write(3, "", 1);
sleep(timer_duration);
}
watchdog_shutdown(0);
- return EXIT_SUCCESS;
+ /* return EXIT_SUCCESS; */
}