diff options
author | Damien Miller <djm@cvs.openbsd.org> | 2014-06-24 02:19:49 +0000 |
---|---|---|
committer | Damien Miller <djm@cvs.openbsd.org> | 2014-06-24 02:19:49 +0000 |
commit | 206d13916338bc63993796d4aad2e0d07d74a9cc (patch) | |
tree | 5c0937fd41c2e06e1dbe7f4070434d408a4dcf90 | |
parent | 7752ca4bd6b8366e0d3fe4bd7317d6c150bdd951 (diff) |
don't fatal() when hostname canonicalisation fails with a
ProxyCommand in use; continue and allow the ProxyCommand to
connect anyway (e.g. to a host with a name outside the DNS
behind a bastion)
-rw-r--r-- | usr.bin/ssh/ssh.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/usr.bin/ssh/ssh.c b/usr.bin/ssh/ssh.c index ad5202eed0b..2a1529d67c5 100644 --- a/usr.bin/ssh/ssh.c +++ b/usr.bin/ssh/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.402 2014/04/29 18:01:49 markus Exp $ */ +/* $OpenBSD: ssh.c,v 1.403 2014/06/24 02:19:48 djm Exp $ */ /* * Author: Tatu Ylonen <ylo@cs.hut.fi> * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland @@ -902,10 +902,14 @@ main(int ac, char **av) if (addrs == NULL && options.num_permitted_cnames != 0 && (option_clear_or_none(options.proxy_command) || options.canonicalize_hostname == SSH_CANONICALISE_ALWAYS)) { - if ((addrs = resolve_host(host, options.port, 1, - cname, sizeof(cname))) == NULL) - cleanup_exit(255); /* resolve_host logs the error */ - check_follow_cname(&host, cname); + if ((addrs = resolve_host(host, options.port, + option_clear_or_none(options.proxy_command), + cname, sizeof(cname))) == NULL) { + /* Don't fatal proxied host names not in the DNS */ + if (option_clear_or_none(options.proxy_command)) + cleanup_exit(255); /* logged in resolve_host */ + } else + check_follow_cname(&host, cname); } /* |