summaryrefslogtreecommitdiff
path: root/sshd.c
diff options
context:
space:
mode:
authordtucker@openbsd.org <dtucker@openbsd.org>2021-06-10 03:14:14 +0000
committerDarren Tucker <dtucker@dtucker.net>2021-06-10 19:48:53 +1000
commit73f6f191f44440ca3049b9d3c8e5401d10b55097 (patch)
tree031502d7fa4c13b6983fa558df6c154af57bda3c /sshd.c
parentc785c0ae134a8e8b5c82b2193f64c632a98159e4 (diff)
downloadopenssh-git-73f6f191f44440ca3049b9d3c8e5401d10b55097.tar.gz
upstream: Continue accept loop when pselect
returns -1, eg if it was interrupted by a signal. This should prevent the hang discovered by sthen@ wherein sshd receives a SIGHUP while it has an unauthenticated child and goes on to a blocking read on a notify_pipe. feedback deraadt@, ok djm@ OpenBSD-Commit-ID: 0243c1c5544fca0974dae92cd4079543a3fceaa0
Diffstat (limited to 'sshd.c')
-rw-r--r--sshd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sshd.c b/sshd.c
index 7e80b174..6d645c4a 100644
--- a/sshd.c
+++ b/sshd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshd.c,v 1.575 2021/06/06 11:34:16 djm Exp $ */
+/* $OpenBSD: sshd.c,v 1.576 2021/06/10 03:14:14 dtucker Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1213,7 +1213,7 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s)
if (ret == -1 && errno != EINTR)
error("pselect: %.100s", strerror(errno));
sigprocmask(SIG_SETMASK, &osigset, NULL);
- if (received_sigterm)
+ if (ret == -1)
continue;
for (i = 0; i < options.max_startups; i++) {