summaryrefslogtreecommitdiff
path: root/sshd.c
diff options
context:
space:
mode:
authorColin Watson <cjwatson@debian.org>2010-01-10 22:07:13 +0000
committerColin Watson <cjwatson@debian.org>2010-01-10 22:07:13 +0000
commit8d610ba26a3041f567441d7260f47425ef52012b (patch)
treea4c67a075ff370922dfe8ab575eadd4b319d1d30 /sshd.c
parentd0d0d064f3ee3dc0b89a63de478973d392adf71f (diff)
* Backport from upstream:
- After sshd receives a SIGHUP, ignore subsequent HUPs while sshd re-execs itself. Prevents two HUPs in quick succession from resulting in sshd dying (LP: #497781).
Diffstat (limited to 'sshd.c')
-rw-r--r--sshd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sshd.c b/sshd.c
index f61d79ec7..b83ecd9e5 100644
--- a/sshd.c
+++ b/sshd.c
@@ -317,6 +317,7 @@ sighup_restart(void)
317 close_listen_socks(); 317 close_listen_socks();
318 close_startup_pipes(); 318 close_startup_pipes();
319 alarm(0); /* alarm timer persists across exec */ 319 alarm(0); /* alarm timer persists across exec */
320 signal(SIGHUP, SIG_IGN); /* will be restored after exec */
320 execv(saved_argv[0], saved_argv); 321 execv(saved_argv[0], saved_argv);
321 logit("RESTART FAILED: av[0]='%.100s', error: %.100s.", saved_argv[0], 322 logit("RESTART FAILED: av[0]='%.100s', error: %.100s.", saved_argv[0],
322 strerror(errno)); 323 strerror(errno));