Merge "KeyMint VTS: don't crash on invalid patchlevel"

This commit is contained in:
David Drysdale 2021-10-05 13:54:09 +00:00 committed by Gerrit Code Review
commit e1152b6390

View file

@ -1365,11 +1365,16 @@ bool verify_attestation_record(const string& challenge, //
att_hw_enforced[i].tag == TAG_VENDOR_PATCHLEVEL) {
std::string date =
std::to_string(att_hw_enforced[i].value.get<KeyParameterValue::integer>());
// strptime seems to require delimiters, but the tag value will
// be YYYYMMDD
if (date.size() != 8) {
ADD_FAILURE() << "Tag " << att_hw_enforced[i].tag
<< " with invalid format (not YYYYMMDD): " << date;
return false;
}
date.insert(6, "-");
date.insert(4, "-");
EXPECT_EQ(date.size(), 10);
struct tm time;
strptime(date.c_str(), "%Y-%m-%d", &time);