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
This commit is contained in:
djm@openbsd.org 2020-06-18 23:33:38 +00:00 committed by Darren Tucker
parent 7fafaeb5da
commit c514f3c052

View File

@ -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. * 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) sshkey_load_public(const char *filename, struct sshkey **keyp, char **commentp)
{ {
char *pubfile = NULL; char *pubfile = NULL;
int r; int r, oerrno;
if (keyp != NULL) if (keyp != NULL)
*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) if ((r = sshkey_load_pubkey_from_private(filename, keyp)) == 0)
goto out; goto out;
/* Pretend we couldn't find the key */
r = SSH_ERR_SYSTEM_ERROR;
errno = ENOENT;
out: out:
oerrno = errno;
free(pubfile); free(pubfile);
errno = oerrno;
return r; return r;
} }