summaryrefslogtreecommitdiff
path: root/sshd.c
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 /sshd.c
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
Diffstat (limited to 'sshd.c')
-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;