summaryrefslogtreecommitdiff
path: root/kex.c
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2019-09-05 09:25:13 +0000
committerDamien Miller <djm@mindrot.org>2019-09-05 20:07:12 +1000
commit0ea332497b2b2fc3995f72f6bafe9d664c0195b3 (patch)
treec90af7aafa491750f4e8ef5708ae8638a6f59a66 /kex.c
parentf23d91f9fa7f6f42e70404e000fac88aebfe3076 (diff)
downloadopenssh-git-0ea332497b2b2fc3995f72f6bafe9d664c0195b3.tar.gz
upstream: only send ext_info for KEX_INITIAL; bz#2929 ok dtucker
OpenBSD-Commit-ID: 00f5c6062f6863769f5447c6346f78c05d2e4a63
Diffstat (limited to 'kex.c')
-rw-r--r--kex.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kex.c b/kex.c
index 34808b5c..ff88dd7e 100644
--- a/kex.c
+++ b/kex.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kex.c,v 1.150 2019/01/21 12:08:13 djm Exp $ */
+/* $OpenBSD: kex.c,v 1.151 2019/09/05 09:25:13 djm Exp $ */
/*
* Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
*
@@ -409,6 +409,7 @@ kex_send_ext_info(struct ssh *ssh)
int r;
char *algs;
+ debug("Sending SSH2_MSG_EXT_INFO");
if ((algs = sshkey_alg_list(0, 1, 1, ',')) == NULL)
return SSH_ERR_ALLOC_FAIL;
/* XXX filter algs list by allowed pubkey/hostbased types */
@@ -435,11 +436,11 @@ kex_send_newkeys(struct ssh *ssh)
(r = sshpkt_send(ssh)) != 0)
return r;
debug("SSH2_MSG_NEWKEYS sent");
- debug("expecting SSH2_MSG_NEWKEYS");
ssh_dispatch_set(ssh, SSH2_MSG_NEWKEYS, &kex_input_newkeys);
- if (ssh->kex->ext_info_c)
+ if (ssh->kex->ext_info_c && (ssh->kex->flags & KEX_INITIAL) != 0)
if ((r = kex_send_ext_info(ssh)) != 0)
return r;
+ debug("expecting SSH2_MSG_NEWKEYS");
return 0;
}