upstream: return SSH_ERR_KEY_NOT_FOUND if the allowed_signers file

is empty, not SSH_ERR_INTERNAL_ERROR. Also remove some dead code spotted
by Coverity; with/ok dtucker@

OpenBSD-Commit-ID: 898a1e817cda9869554b1f586a434f67bcc3b650
This commit is contained in:
djm@openbsd.org 2023-03-30 03:05:01 +00:00 committed by Darren Tucker
parent f108e77a9d
commit 34ee842cdd
No known key found for this signature in database

View File

@ -1,4 +1,4 @@
/* $OpenBSD: sshsig.c,v 1.30 2022/08/19 03:06:30 djm Exp $ */
/* $OpenBSD: sshsig.c,v 1.31 2023/03/30 03:05:01 djm Exp $ */
/*
* Copyright (c) 2019 Google LLC
*
@ -977,7 +977,7 @@ sshsig_check_allowed_keys(const char *path, const struct sshkey *sign_key,
char *line = NULL;
size_t linesize = 0;
u_long linenum = 0;
int r = SSH_ERR_INTERNAL_ERROR, oerrno;
int r = SSH_ERR_KEY_NOT_FOUND, oerrno;
/* Check key and principal against file */
if ((f = fopen(path, "r")) == NULL) {
@ -1007,7 +1007,7 @@ sshsig_check_allowed_keys(const char *path, const struct sshkey *sign_key,
/* Either we hit an error parsing or we simply didn't find the key */
fclose(f);
free(line);
return r == 0 ? SSH_ERR_KEY_NOT_FOUND : r;
return r;
}
int