diff --git a/c-daemon/daemon/daemon.c b/c-daemon/daemon/daemon.c index 230ff00..070fa0b 100644 --- a/c-daemon/daemon/daemon.c +++ b/c-daemon/daemon/daemon.c @@ -17,57 +17,57 @@ int _daemon(int nochdir, int noclose){ // pid_t defined in sys/types.h // pid_t is a signed int data type - logg(1) + logg(1); pid = fork(); // fork of the parent process // fork() function defined in unistd.h - logg(2) + logg(2); if (pid < 0){ - logg(3) + logg(3); exit(EXIT_FAILURE); // exit and EXIT_FAILURE defined in stdlib.h } else if (pid > 0){ - logg(4) + logg(4); exit(EXIT_SUCCESS); } - logg(5) + logg(5); sid = setsid(); - logg(6) + logg(6); if (sid < 0) { - logg(7) + logg(7); exit(EXIT_FAILURE); } - logg(8) + logg(8); if ((chdir("/")) < 0) { - logg(10) + logg(10); exit(EXIT_FAILURE); } - logg(11) + logg(11); if (!noclose) { - logg(12) + logg(12); for (int i = 0; i < NR_OPEN; i++){ - logg(13) + logg(13); close(i); // close(STDOUT_FILENO); => close(1); // close(STDERR_FILENO); => close(2); } open("/dev/null", O_RDWR); - logg(14) + logg(14); dup(0); dup(0); } while (1) { - logg(15) + logg(15); int status = system("/usr/lib/cdaemontmp/info"); // TODO SECURITY ISSUE // LINK https://stackoverflow.com/questions/5237482/how-do-i-execute-an-external-program-within-c-code-in-linux-with-arguments# sleep(1); } - logg(16) + logg(16); exit(EXIT_SUCCESS); } \ No newline at end of file