upstream: sk-usbhid: preserve error code returned by key_lookup()

it conveys useful information, such as the supplied pin being wrong.

Part of GHPR329 from Pedro Martelletto

OpenBSD-Commit-ID: c0647eb9290f793add363d81378439b273756c1b
This commit is contained in:
djm@openbsd.org 2022-07-20 03:31:42 +00:00 committed by Damien Miller
parent 9ab929ca2d
commit 8638a2ce7e

View File

@ -1,4 +1,4 @@
/* $OpenBSD: sk-usbhid.c,v 1.40 2022/07/20 03:29:14 djm Exp $ */
/* $OpenBSD: sk-usbhid.c,v 1.41 2022/07/20 03:31:42 djm Exp $ */
/*
* Copyright (c) 2019 Markus Friedl
* Copyright (c) 2020 Pedro Martelletto
@ -876,7 +876,7 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len,
(r = key_lookup(sk->dev, application, user_id, sizeof(user_id),
pin)) != FIDO_ERR_NO_CREDENTIALS) {
if (r != FIDO_OK) {
ret = SSH_SK_ERR_GENERAL;
ret = fidoerr_to_skerr(r);
skdebug(__func__, "key_lookup failed");
} else {
ret = SSH_SK_ERR_CREDENTIAL_EXISTS;