From a89adaebc36d35739f280cd3bcf99f1e8ac694ee Mon Sep 17 00:00:00 2001 From: Ilya Shipitsin Date: Mon, 1 May 2023 06:07:19 +0200 Subject: [PATCH] src/Mayaqua/Secure.c: fix potential null pointer dereference found by coverity CID 343536 (#1 of 1): Dereference before null check (REVERSE_INULL) check_after_deref: Null-checking name suggests that it may be null, but it has already been dereferenced on all paths leading to the check. 1339 if (name == NULL || data == NULL || size == 0) 1340 { 1341 sec->Error = SEC_ERROR_BAD_PARAMETER; 1342 return false; 1343 } --- src/Mayaqua/Secure.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/Mayaqua/Secure.c b/src/Mayaqua/Secure.c index 18078cd5..7ff81386 100644 --- a/src/Mayaqua/Secure.c +++ b/src/Mayaqua/Secure.c @@ -1313,14 +1313,6 @@ bool WriteSecData(SECURE *sec, bool private_obj, char *name, void *data, UINT si UINT object_class = CKO_DATA; CK_BBOOL b_true = true, b_false = false, b_private_obj = private_obj; UINT object; - CK_ATTRIBUTE a[] = - { - {CKA_TOKEN, &b_true, sizeof(b_true)}, - {CKA_CLASS, &object_class, sizeof(object_class)}, - {CKA_PRIVATE, &b_private_obj, sizeof(b_private_obj)}, - {CKA_LABEL, name, StrLen(name)}, - {CKA_VALUE, data, size}, - }; // Validate arguments if (sec == NULL) { @@ -1347,6 +1339,15 @@ bool WriteSecData(SECURE *sec, bool private_obj, char *name, void *data, UINT si return false; } + CK_ATTRIBUTE a[] = + { + {CKA_TOKEN, &b_true, sizeof(b_true)}, + {CKA_CLASS, &object_class, sizeof(object_class)}, + {CKA_PRIVATE, &b_private_obj, sizeof(b_private_obj)}, + {CKA_LABEL, name, StrLen(name)}, + {CKA_VALUE, data, size}, + }; + // Delete any objects with the same name if (CheckSecObject(sec, name, SEC_DATA)) {