summaryrefslogtreecommitdiff
path: root/authfile.c
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2020-06-18 23:33:38 +0000
committerDarren Tucker <dtucker@dtucker.net>2020-06-19 15:51:04 +1000
commitc514f3c0522855b4d548286eaa113e209051a6d2 (patch)
treeac763d6eee27fa99574af3a147940a3f5a04f9aa /authfile.c
parent7fafaeb5da365f4a408fec355dac04a774f27193 (diff)
downloadopenssh-git-c514f3c0522855b4d548286eaa113e209051a6d2.tar.gz
upstream: avoid spurious "Unable to load host key" message when
sshd can load a private key but no public counterpart; with & ok markus@ OpenBSD-Commit-ID: 0713cbdf9aa1ff8ac7b1f78b09ac911af510f81b
Diffstat (limited to 'authfile.c')
-rw-r--r--authfile.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/authfile.c b/authfile.c
index 35ccf576..946f50ca 100644
--- a/authfile.c
+++ b/authfile.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: authfile.c,v 1.140 2020/04/17 07:15:11 djm Exp $ */
+/* $OpenBSD: authfile.c,v 1.141 2020/06/18 23:33:38 djm Exp $ */
/*
* Copyright (c) 2000, 2013 Markus Friedl. All rights reserved.
*
@@ -263,7 +263,7 @@ int
sshkey_load_public(const char *filename, struct sshkey **keyp, char **commentp)
{
char *pubfile = NULL;
- int r;
+ int r, oerrno;
if (keyp != NULL)
*keyp = NULL;
@@ -283,8 +283,14 @@ sshkey_load_public(const char *filename, struct sshkey **keyp, char **commentp)
if ((r = sshkey_load_pubkey_from_private(filename, keyp)) == 0)
goto out;
+ /* Pretend we couldn't find the key */
+ r = SSH_ERR_SYSTEM_ERROR;
+ errno = ENOENT;
+
out:
+ oerrno = errno;
free(pubfile);
+ errno = oerrno;
return r;
}