diff options
author | dtucker@openbsd.org <dtucker@openbsd.org> | 2019-11-13 11:25:11 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2019-11-15 08:50:10 +1100 |
commit | fc173aeb1526d4268db89ec5dfebaf8750dd26cd (patch) | |
tree | fe8cc758797f294062fb53ce420204b0467c7448 /sshd.c | |
parent | bf219920b70cafbf29ebc9890ef67d0efa54e738 (diff) |
upstream: When clients get denied by MaxStartups, send a
noification prior to the SSH2 protocol banner according to RFC4253 section
4.2. ok djm@ deraadt@ markus@
OpenBSD-Commit-ID: e5dabcb722d54dea18eafb336d50b733af4f9c63
Diffstat (limited to 'sshd.c')
-rw-r--r-- | sshd.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.539 2019/10/31 21:23:19 djm Exp $ */ +/* $OpenBSD: sshd.c,v 1.540 2019/11/13 11:25:11 dtucker Exp $ */ /* * Author: Tatu Ylonen <ylo@cs.hut.fi> * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland @@ -1154,6 +1154,7 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) if (drop_connection(startups) == 1) { char *laddr = get_local_ipaddr(*newsock); char *raddr = get_peer_ipaddr(*newsock); + char msg[] = "Exceeded MaxStartups\r\n"; verbose("drop connection #%d from [%s]:%d " "on [%s]:%d past MaxStartups", startups, @@ -1161,6 +1162,8 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) laddr, get_local_port(*newsock)); free(laddr); free(raddr); + /* best-effort notification to client */ + (void)write(*newsock, msg, strlen(msg)); close(*newsock); continue; } |