aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/pidfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/udhcp/pidfile.c')
-rw-r--r--networking/udhcp/pidfile.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/networking/udhcp/pidfile.c b/networking/udhcp/pidfile.c
index 8d00490af..bcb2608c5 100644
--- a/networking/udhcp/pidfile.c
+++ b/networking/udhcp/pidfile.c
@@ -23,7 +23,7 @@
23#include "common.h" 23#include "common.h"
24 24
25 25
26static char *saved_pidfile; 26static const char *saved_pidfile;
27 27
28static void pidfile_delete(void) 28static void pidfile_delete(void)
29{ 29{
@@ -36,14 +36,14 @@ int pidfile_acquire(const char *pidfile)
36 int pid_fd; 36 int pid_fd;
37 if (!pidfile) return -1; 37 if (!pidfile) return -1;
38 38
39 pid_fd = open(pidfile, O_CREAT | O_WRONLY, 0644); 39 pid_fd = open(pidfile, O_CREAT|O_WRONLY|O_TRUNC, 0644);
40 if (pid_fd < 0) { 40 if (pid_fd < 0) {
41 bb_perror_msg("unable to open pidfile %s", pidfile); 41 bb_perror_msg("cannot open pidfile %s", pidfile);
42 } else { 42 } else {
43 lockf(pid_fd, F_LOCK, 0); 43 lockf(pid_fd, F_LOCK, 0);
44 if (!saved_pidfile) 44 if (!saved_pidfile)
45 atexit(pidfile_delete); 45 atexit(pidfile_delete);
46 saved_pidfile = (char *) pidfile; 46 saved_pidfile = pidfile;
47 } 47 }
48 48
49 return pid_fd; 49 return pid_fd;