aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--networking/udhcp/common.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c
index bfdc7ba8d..8542c664c 100644
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
@@ -59,15 +59,14 @@ void background(const char *pidfile)
#else /* __uClinux__ */
int pid_fd;
- if (!pidfile) return;
-
- pid_fd = pidfile_acquire(pidfile); /* hold lock during fork. */
+ /* hold lock during fork. */
+ if (pidfile) pid_fd = pidfile_acquire(pidfile);
if (daemon(0, 0) == -1) {
perror("fork");
exit(1);
}
daemonized++;
- pidfile_write_release(pid_fd);
+ if (pidfile) pidfile_write_release(pid_fd);
#endif /* __uClinux__ */
}
@@ -97,8 +96,10 @@ void start_log_and_pid(const char *client_server, const char *pidfile)
sanitize_fds();
/* do some other misc startup stuff while we are here to save bytes */
- pid_fd = pidfile_acquire(pidfile);
- pidfile_write_release(pid_fd);
+ if (pidfile) {
+ pid_fd = pidfile_acquire(pidfile);
+ pidfile_write_release(pid_fd);
+ }
/* equivelent of doing a fflush after every \n */
setlinebuf(stdout);