summaryrefslogtreecommitdiff
path: root/isisd/isis_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'isisd/isis_main.c')
-rw-r--r--isisd/isis_main.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/isisd/isis_main.c b/isisd/isis_main.c
index fa6552e643..75463b33bb 100644
--- a/isisd/isis_main.c
+++ b/isisd/isis_main.c
@@ -246,7 +246,12 @@ main (int argc, char **argv, char **envp)
_argc = argc;
_argv = argv;
_envp = envp;
- getcwd (_cwd, sizeof (_cwd));
+ if (getcwd (_cwd, sizeof (_cwd)) == NULL)
+ {
+ zlog_err ("ISISd: Unable to determine CWD: %d", errno);
+ exit (1);
+ }
+
if (*argv[0] == '.')
snprintf (_progpath, sizeof (_progpath), "%s/%s", _cwd, _argv[0]);
else
@@ -348,8 +353,11 @@ main (int argc, char **argv, char **envp)
return(0);
/* demonize */
- if (daemon_mode)
- daemon (0, 0);
+ if (daemon_mode && daemon (0, 0) < 0)
+ {
+ zlog_err("ISISd daemon failed: %s", strerror(errno));
+ return (1);
+ }
/* Process ID file creation. */
if (pid_file[0] != '\0')