summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordtucker@openbsd.org <dtucker@openbsd.org>2016-12-04 22:27:25 +0000
committerDarren Tucker <dtucker@zip.com.au>2016-12-05 17:24:42 +1100
commitf2398eb774075c687b13af5bc22009eb08889abe (patch)
tree54e419c29abd0b11a9067a5fb73e050fbdb0c56a
parent85aa2efeba51a96bf6834f9accf2935d96150296 (diff)
upstream commit
Unlink PidFile on SIGHUP and always recreate it when the new sshd starts. Regression tests (and possibly other things) depend on the pidfile being recreated after SIGHUP, and unlinking it means it won't contain a stale pid if sshd fails to restart. ok djm@ markus@ Upstream-ID: 132dd6dda0c77dd49d2f15b2573b5794f6160870
-rw-r--r--sshd.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sshd.c b/sshd.c
index fafcd340..53107caf 100644
--- a/sshd.c
+++ b/sshd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshd.c,v 1.478 2016/11/30 00:28:31 dtucker Exp $ */
+/* $OpenBSD: sshd.c,v 1.479 2016/12/04 22:27:25 dtucker Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -290,6 +290,8 @@ static void
sighup_restart(void)
{
logit("Received SIGHUP; restarting.");
+ if (options.pid_file != NULL)
+ unlink(options.pid_file);
platform_pre_restart();
close_listen_socks();
close_startup_pipes();
@@ -1841,7 +1843,7 @@ main(int ac, char **av)
* Write out the pid file after the sigterm handler
* is setup and the listen sockets are bound
*/
- if (options.pid_file != NULL && !debug_flag && !already_daemon) {
+ if (options.pid_file != NULL && !debug_flag) {
FILE *f = fopen(options.pid_file, "w");
if (f == NULL) {