pid_t newpid;
if (do_fork) {
newpid = fork();
+ if (newpid == -1) {
+ exit_daemon("Fork failed", errno);
+ }
if (newpid) {
#if defined(HAVE_LIBSYSTEMD_DAEMON) || defined(HAVE_LIBSYSTEMD)
sd_notifyf(0,
/* detach from the terminal */
#ifdef HAVE_SETSID
- if (!no_session) setsid();
+ if (!no_session) {
+ int ret = setsid();
+ if (ret == -1) {
+ exit_daemon("Failed to create session", errno);
+ }
+ }
#elif defined(TIOCNOTTY)
if (!no_session) {
int i = open("/dev/tty", O_RDWR, 0);