mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-04-19 18:26:44 +02:00
48 lines
1.5 KiB
Diff
48 lines
1.5 KiB
Diff
If we are using the chroot() option or the setuid options, we must create the
|
|
pidfile before doing the chroot OR the setreuid. It's actually best for
|
|
start-stop-daemon if we create the pidfile from the master side of the fork()
|
|
before it exits, since most of the startup checks happen after the chroot()
|
|
unfortunetly.
|
|
|
|
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
|
|
diff -Nuar fprobe-1.1.orig/src/fprobe.c fprobe-1.1/src/fprobe.c
|
|
--- fprobe-1.1.orig/src/fprobe-ulog.c 2005-01-30 08:43:35.000000000 +0000
|
|
+++ fprobe-1.1/src/fprobe-ulog.c 2008-03-16 20:51:24.000000000 +0000
|
|
@@ -1379,7 +1379,8 @@
|
|
|
|
my_log_open(ident, verbosity, log_dest);
|
|
if (!(log_dest & 2)) {
|
|
- switch (fork()) {
|
|
+ pid_t childpid = fork();
|
|
+ switch (childpid) {
|
|
case -1:
|
|
fprintf(stderr, "fork(): %s", strerror(errno));
|
|
exit(1);
|
|
@@ -1392,6 +1393,12 @@
|
|
break;
|
|
|
|
default:
|
|
+ if (!(pidfile = fopen(pidfilepath, "w")))
|
|
+ my_log(LOG_ERR, "Can't create pid file. fopen(): %s", strerror(errno));
|
|
+ else {
|
|
+ fprintf(pidfile, "%ld\n", (long) childpid);
|
|
+ fclose(pidfile);
|
|
+ }
|
|
exit(0);
|
|
}
|
|
} else {
|
|
@@ -1548,13 +1555,6 @@
|
|
}
|
|
}
|
|
|
|
- if (!(pidfile = fopen(pidfilepath, "w")))
|
|
- my_log(LOG_ERR, "Can't create pid file. fopen(): %s", strerror(errno));
|
|
- else {
|
|
- fprintf(pidfile, "%ld\n", (long) pid);
|
|
- fclose(pidfile);
|
|
- }
|
|
-
|
|
my_log(LOG_INFO, "pid: %d", pid);
|
|
my_log(LOG_INFO, "interface: %s, datalink: %s (%d)",
|
|
dev, dlt[link_type_idx].descr, link_type);
|