]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream commit
authordjm@openbsd.org <djm@openbsd.org>
Fri, 13 Nov 2015 04:39:35 +0000 (04:39 +0000)
committerDamien Miller <djm@mindrot.org>
Mon, 16 Nov 2015 00:31:38 +0000 (11:31 +1100)
send SSH2_MSG_UNIMPLEMENTED replies to unexpected
 messages during KEX; bz#2949, ok dtucker@

Upstream-ID: 2b3abdff344d53c8d505f45c83a7b12e84935786

kex.c

diff --git a/kex.c b/kex.c
index d8793b91959d1cd8ffc9934909d5f7051db0b279..b409f276bdfd64b33c43a59cd160ce6571512738 100644 (file)
--- a/kex.c
+++ b/kex.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kex.c,v 1.111 2015/10/13 00:21:27 djm Exp $ */
+/* $OpenBSD: kex.c,v 1.112 2015/11/13 04:39:35 djm Exp $ */
 /*
  * Copyright (c) 2000, 2001 Markus Friedl.  All rights reserved.
  *
@@ -315,7 +315,14 @@ kex_prop_free(char **proposal)
 static int
 kex_protocol_error(int type, u_int32_t seq, void *ctxt)
 {
-       error("Hm, kex protocol error: type %d seq %u", type, seq);
+       struct ssh *ssh = active_state; /* XXX */
+       int r;
+
+       error("kex protocol error: type %d seq %u", type, seq);
+       if ((r = sshpkt_start(ssh, SSH2_MSG_UNIMPLEMENTED)) != 0 ||
+           (r = sshpkt_put_u32(ssh, seq)) != 0 ||
+           (r = sshpkt_send(ssh)) != 0)
+               return r;
        return 0;
 }