Commit d5946d28 authored by Leonardo Arena's avatar Leonardo Arena
Browse files

testing/fprobe-ulog: fix piddir creation when in chroot

parent c47c4ad0
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org> # Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=fprobe-ulog pkgname=fprobe-ulog
pkgver=1.1 pkgver=1.1
pkgrel=0 pkgrel=1
pkgdesc="netfilter-based tool that collect network traffic" pkgdesc="netfilter-based tool that collect network traffic"
url="http://fprobe.sourceforge.net/" url="http://fprobe.sourceforge.net/"
arch="all" arch="all"
...@@ -13,17 +13,18 @@ subpackages="$pkgname-doc" ...@@ -13,17 +13,18 @@ subpackages="$pkgname-doc"
source="http://downloads.sourceforge.net/project/fprobe/$pkgname/$pkgver/$pkgname-1.1.tar.bz2 source="http://downloads.sourceforge.net/project/fprobe/$pkgname/$pkgver/$pkgname-1.1.tar.bz2
fprobe-ulog.confd fprobe-ulog.confd
fprobe-ulog.initd fprobe-ulog.initd
fprobe-1.1-pidfile-sanity.patch
" "
_builddir="$srcdir"/$pkgname-$pkgver _builddir="$srcdir"/$pkgname-$pkgver
prepare() { prepare() {
cd $_builddir cd $_builddir
# for i in ../*.patch for i in ../*.patch
# do do
# msg "Applying $i" msg "Applying $i"
# patch -p1 < ../$i || exit 1 patch -p1 < ../$i || exit 1
# done done
} }
build() { build() {
...@@ -46,4 +47,5 @@ package() { ...@@ -46,4 +47,5 @@ package() {
md5sums="cdb2e4edc47e8a3d5479eeabfb979ebc fprobe-ulog-1.1.tar.bz2 md5sums="cdb2e4edc47e8a3d5479eeabfb979ebc fprobe-ulog-1.1.tar.bz2
a92104da52c99532d1d01007b78940fc fprobe-ulog.confd a92104da52c99532d1d01007b78940fc fprobe-ulog.confd
bc878e47b44fbd71bd594206a4384c12 fprobe-ulog.initd" 744975c055421223940a278517b34d47 fprobe-ulog.initd
f1316ad835c1a2b6565b4dc448b022df fprobe-1.1-pidfile-sanity.patch"
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);
...@@ -9,10 +9,10 @@ depend() { ...@@ -9,10 +9,10 @@ depend() {
PIDFILE_EXTRA="" PIDFILE_EXTRA=""
[ -n "$PIDFILE_ID" ] && PIDFILE_EXTRA="[$PIDFILE_ID]" [ -n "$PIDFILE_ID" ] && PIDFILE_EXTRA="[$PIDFILE_ID]"
PIDFILE="/var/run/fprobe$PIDFILE_EXTRA.pid" PIDFILE="/var/run/fprobe-ulog$PIDFILE_EXTRA.pid"
start() { start() {
ebegin "Starting fprobe" ebegin "Starting fprobe-ulog"
local OPTS="" local OPTS=""
set -- set --
[ -n "${FILTER}" ] && set -- -f "${FILTER}" [ -n "${FILTER}" ] && set -- -f "${FILTER}"
...@@ -32,7 +32,7 @@ start() { ...@@ -32,7 +32,7 @@ start() {
} }
stop() { stop() {
ebegin "Stopping fprobe" ebegin "Stopping fprobe-ulog"
start-stop-daemon --stop --quiet --exec $DAEMON \ start-stop-daemon --stop --quiet --exec $DAEMON \
--pidfile ${PIDFILE} --pidfile ${PIDFILE}
eend $? eend $?
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment