upstream: fd leak in sshd listen loop error path; from Gleb

Smirnoff

OpenBSD-Commit-ID: a7a2be27a690a74bf2381bc16cea38e265657412
This commit is contained in:
djm@openbsd.org 2021-11-18 03:07:59 +00:00 committed by Damien Miller
parent b99498d0c9
commit 36b5e37030
1 changed files with 4 additions and 2 deletions

6
sshd.c
View File

@ -1,4 +1,4 @@
/* $OpenBSD: sshd.c,v 1.581 2021/11/18 03:07:20 djm Exp $ */ /* $OpenBSD: sshd.c,v 1.582 2021/11/18 03:07:59 djm Exp $ */
/* /*
* Author: Tatu Ylonen <ylo@cs.hut.fi> * Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@ -1264,8 +1264,10 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s)
continue; continue;
} }
if (unset_nonblock(*newsock) == -1 || if (unset_nonblock(*newsock) == -1 ||
pipe(startup_p) == -1) pipe(startup_p) == -1) {
close(*newsock);
continue; continue;
}
if (drop_connection(*newsock, startups, startup_p[0])) { if (drop_connection(*newsock, startups, startup_p[0])) {
close(*newsock); close(*newsock);
close(startup_p[0]); close(startup_p[0]);