aboutsummaryrefslogtreecommitdiff
path: root/src/rc/start-stop-daemon.c
diff options
context:
space:
mode:
authorDoug Freed <dwfreed@mtu.edu>2017-11-29 15:10:39 -0500
committerGitHub <noreply@github.com>2017-11-29 15:10:39 -0500
commitc84ebb94d19ca856fe064e15d2068d5671e360c9 (patch)
tree69660ab832640a973cfa4727fbc37596ff5d6583 /src/rc/start-stop-daemon.c
parent3de6395ae3b8780ab501f3cf8688e1cb2a9f0243 (diff)
start-stop-daemon: properly handle missing pidfile
X-Gentoo-Bug: 639218 X-Gentoo-Bug-URL: https://bugs.gentoo.org/639218
Diffstat (limited to 'src/rc/start-stop-daemon.c')
-rw-r--r--src/rc/start-stop-daemon.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/rc/start-stop-daemon.c b/src/rc/start-stop-daemon.c
index e98f8ba3..54b89b2a 100644
--- a/src/rc/start-stop-daemon.c
+++ b/src/rc/start-stop-daemon.c
@@ -657,8 +657,15 @@ int main(int argc, char **argv)
parse_schedule(applet, "0", sig);
else
parse_schedule(applet, NULL, sig);
+ if (pidfile) {
+ pid = get_pid(applet, pidfile);
+ if (pid == -1)
+ exit(EXIT_FAILURE);
+ } else {
+ pid = 0;
+ }
i = run_stop_schedule(applet, exec, (const char *const *)margv,
- get_pid(applet, pidfile), uid, test, progress, false);
+ pid, uid, test, progress, false);
if (i < 0)
/* We failed to stop something */