]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: only send ext_info for KEX_INITIAL; bz#2929 ok dtucker
authordjm@openbsd.org <djm@openbsd.org>
Thu, 5 Sep 2019 09:25:13 +0000 (09:25 +0000)
committerDamien Miller <djm@mindrot.org>
Thu, 5 Sep 2019 10:07:12 +0000 (20:07 +1000)
OpenBSD-Commit-ID: 00f5c6062f6863769f5447c6346f78c05d2e4a63

kex.c

diff --git a/kex.c b/kex.c
index 34808b5c39dab7000f67ddd4ed3c7a9efb783d84..ff88dd7e3242b532efed21e0b41dc05776e35e80 100644 (file)
--- 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;
 }