Resolve using invalid iterator 57/316857/3
authorYonggoo Kang <ygace.kang@samsung.com>
Thu, 29 Aug 2024 11:27:19 +0000 (20:27 +0900)
committerYonggoo Kang <ygace.kang@samsung.com>
Thu, 29 Aug 2024 11:56:46 +0000 (20:56 +0900)
- it->second.id is invalid if the it equal to contents->createdCredDescs.end()
- CID 1789324 from coverity check

Change-Id: I7dace1a8728521416d38bce2db01810ee84d7f77

tests/webauthn-manual-test-app/src/scenarios.cpp

index 58a54f648bdcda6e332ca9364d33e635eede7937..dc159712cac374320aaccd897221b827dbabc9af 100644 (file)
@@ -286,7 +286,7 @@ void ResponseCbGA(const wauthn_pubkey_credential_assertion_s *pubkey_cred,
             auto userHandle = ToBuffer(*pubkey_cred->response->user_handle);
             if (userHandle != contents->userId)
             {
-                std::cout << "Error: invalid userHandle in GA: "
+                std::cout << "Error: invalid userHandle in GA response: "
                           << LowercaseHexStringOf(userHandle)
                           << std::endl;
                 contents->testMsg = "Invalid username";
@@ -294,10 +294,17 @@ void ResponseCbGA(const wauthn_pubkey_credential_assertion_s *pubkey_cred,
             }
         }
         auto it = contents->createdCredDescs.find(contents->userId);
-        if (it == contents->createdCredDescs.end()
-            || it->second.id != credentialRawId)
+        if (it == contents->createdCredDescs.end())
         {
-            std::cout << "Error: invalid credentialRawId in GA: "
+            std::cout << "Error: invalid credentialRawId in GA response: "
+                      << LowercaseHexStringOf(credentialRawId)
+                      << " is not found" << std::endl;
+            contents->testMsg = "Invalid credentialRawId";
+            goto callback_failed;
+        }
+        else if (it->second.id != credentialRawId)
+        {
+            std::cout << "Error: invalid credentialRawId in GA response: "
                       << LowercaseHexStringOf(credentialRawId)
                       << " and found(" << LowercaseHexStringOf(it->second.id)
                       << ")" << std::endl;