summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2017-03-15 02:19:09 +0000
committerDamien Miller <djm@mindrot.org>2017-03-15 13:34:20 +1100
commita8c5eeacf032a7d3408957e45dd7603cc1baf55f (patch)
tree646ef5792b8b1ecbdda0e7679fa4f335bfd2b8df
parent66705948c0639a7061a0d0753266da7685badfec (diff)
upstream commit
Fix segfault when sshd attempts to load RSA1 keys (can only happen when protocol v.1 support is enabled for the client). Reported by Jakub Jelen in bz#2686; ok dtucker Upstream-ID: 8fdaec2ba4b5f65db1d094f6714ce64b25d871d7
-rw-r--r--sshd.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sshd.c b/sshd.c
index df694fe3d..0b544f9f0 100644
--- a/sshd.c
+++ b/sshd.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sshd.c,v 1.483 2017/02/24 03:16:34 djm Exp $ */ 1/* $OpenBSD: sshd.c,v 1.484 2017/03/15 02:19:09 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1675,6 +1675,15 @@ main(int ac, char **av)
1675 continue; 1675 continue;
1676 key = key_load_private(options.host_key_files[i], "", NULL); 1676 key = key_load_private(options.host_key_files[i], "", NULL);
1677 pubkey = key_load_public(options.host_key_files[i], NULL); 1677 pubkey = key_load_public(options.host_key_files[i], NULL);
1678
1679 if ((pubkey != NULL && pubkey->type == KEY_RSA1) ||
1680 (key != NULL && key->type == KEY_RSA1)) {
1681 verbose("Ignoring RSA1 key %s",
1682 options.host_key_files[i])
1683 key_free(key);
1684 key_free(pubkey);
1685 continue;
1686 }
1678 if (pubkey == NULL && key != NULL) 1687 if (pubkey == NULL && key != NULL)
1679 pubkey = key_demote(key); 1688 pubkey = key_demote(key);
1680 sensitive_data.host_keys[i] = key; 1689 sensitive_data.host_keys[i] = key;