diff options
author | djm@openbsd.org <djm@openbsd.org> | 2017-03-15 02:19:09 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2017-03-15 13:34:20 +1100 |
commit | a8c5eeacf032a7d3408957e45dd7603cc1baf55f (patch) | |
tree | 646ef5792b8b1ecbdda0e7679fa4f335bfd2b8df /sshd.c | |
parent | 66705948c0639a7061a0d0753266da7685badfec (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.c | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -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; |