From 66ab6d8c22a877592c3514f400a53be8e87f5783 Mon Sep 17 00:00:00 2001 From: Sean Parkinson Date: Tue, 12 Feb 2019 09:07:14 +1000 Subject: [PATCH] Check FindObjectFinal call for error --- wolfcrypt/src/wc_pkcs11.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/wolfcrypt/src/wc_pkcs11.c b/wolfcrypt/src/wc_pkcs11.c index 9bd43eda3..a288f8b74 100644 --- a/wolfcrypt/src/wc_pkcs11.c +++ b/wolfcrypt/src/wc_pkcs11.c @@ -650,7 +650,9 @@ static int Pkcs11FindKeyById(CK_OBJECT_HANDLE* key, CK_OBJECT_CLASS keyClass, rv = session->func->C_FindObjects(session->handle, key, 1, &count); if (rv != CKR_OK) ret = WC_HW_E; - session->func->C_FindObjectsFinal(session->handle); + rv = session->func->C_FindObjectsFinal(session->handle); + if (rv != CKR_OK) + ret = WC_HW_E; } if (ret == 0 && count == 0) ret = WC_HW_E; @@ -696,7 +698,9 @@ static int Pkcs11FindRsaKey(CK_OBJECT_HANDLE* key, CK_OBJECT_CLASS keyClass, rv = session->func->C_FindObjects(session->handle, key, 1, &count); if (rv != CKR_OK) ret = WC_HW_E; - session->func->C_FindObjectsFinal(session->handle); + rv = session->func->C_FindObjectsFinal(session->handle); + if (rv != CKR_OK) + ret = WC_HW_E; } return ret; @@ -1095,7 +1099,9 @@ static int Pkcs11FindEccKey(CK_OBJECT_HANDLE* key, CK_OBJECT_CLASS keyClass, rv = session->func->C_FindObjects(session->handle, key, 1, &count); if (rv != CKR_OK) ret = WC_HW_E; - session->func->C_FindObjectsFinal(session->handle); + rv = session->func->C_FindObjectsFinal(session->handle); + if (rv != CKR_OK) + ret = WC_HW_E; } if (ecPoint != NULL)