From 73f6f191f44440ca3049b9d3c8e5401d10b55097 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Thu, 10 Jun 2021 03:14:14 +0000 Subject: [PATCH] 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 --- sshd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sshd.c b/sshd.c index 7e80b1749..6d645c4ab 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 * Copyright (c) 1995 Tatu Ylonen , 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++) {