From a98852445281797b3a1cce124204d76f5c359a82 Mon Sep 17 00:00:00 2001 From: asandikci Date: Thu, 27 Jul 2023 12:54:29 +0300 Subject: [PATCH] tmp logs --- c-daemon/daemon/daemon.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/c-daemon/daemon/daemon.c b/c-daemon/daemon/daemon.c index 57f5fff..230ff00 100644 --- a/c-daemon/daemon/daemon.c +++ b/c-daemon/daemon/daemon.c @@ -17,42 +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) pid = fork(); // fork of the parent process // fork() function defined in unistd.h + logg(2) if (pid < 0){ + logg(3) exit(EXIT_FAILURE); // exit and EXIT_FAILURE defined in stdlib.h } else if (pid > 0){ + logg(4) exit(EXIT_SUCCESS); } + logg(5) sid = setsid(); + logg(6) if (sid < 0) { + logg(7) exit(EXIT_FAILURE); } + logg(8) if ((chdir("/")) < 0) { + logg(10) exit(EXIT_FAILURE); } + logg(11) if (!noclose) { + logg(12) for (int i = 0; i < NR_OPEN; i++){ + logg(13) close(i); // close(STDOUT_FILENO); => close(1); // close(STDERR_FILENO); => close(2); } open("/dev/null", O_RDWR); + logg(14) dup(0); dup(0); } while (1) { + 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) exit(EXIT_SUCCESS); } \ No newline at end of file