Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1152b63 authored by David Drysdale's avatar David Drysdale Committed by Gerrit Code Review
Browse files

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

parents 8fb4a1c8 168228a9
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -1365,11 +1365,16 @@ bool verify_attestation_record(const string& challenge, //
                att_hw_enforced[i].tag == TAG_VENDOR_PATCHLEVEL) {
                att_hw_enforced[i].tag == TAG_VENDOR_PATCHLEVEL) {
                std::string date =
                std::string date =
                        std::to_string(att_hw_enforced[i].value.get<KeyParameterValue::integer>());
                        std::to_string(att_hw_enforced[i].value.get<KeyParameterValue::integer>());

                // strptime seems to require delimiters, but the tag value will
                // strptime seems to require delimiters, but the tag value will
                // be YYYYMMDD
                // 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(6, "-");
                date.insert(4, "-");
                date.insert(4, "-");
                EXPECT_EQ(date.size(), 10);
                struct tm time;
                struct tm time;
                strptime(date.c_str(), "%Y-%m-%d", &time);
                strptime(date.c_str(), "%Y-%m-%d", &time);