diff options
Diffstat (limited to 'chromium/device/fido/get_assertion_task.cc')
-rw-r--r-- | chromium/device/fido/get_assertion_task.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/chromium/device/fido/get_assertion_task.cc b/chromium/device/fido/get_assertion_task.cc index cef806ca853..16d88c8a5a4 100644 --- a/chromium/device/fido/get_assertion_task.cc +++ b/chromium/device/fido/get_assertion_task.cc @@ -61,11 +61,15 @@ void GetAssertionTask::Cancel() { // static bool GetAssertionTask::StringFixupPredicate( const std::vector<const cbor::Value*>& path) { + // This filters out all elements that are not string-keyed, direct children + // of key 0x04, which is the `user` element of a getAssertion response. if (path.size() != 2 || !path[0]->is_unsigned() || path[0]->GetUnsigned() != 4 || !path[1]->is_string()) { return false; } + // Of those string-keyed children, only `name` and `displayName` may have + // truncated UTF-8 in their values. const std::string& user_key = path[1]->GetString(); return user_key == "name" || user_key == "displayName"; } |