Make AuthorizationSet handle null initializers safely.
Change-Id: Ic58bb779c8cb30828ec9f57a1bb5bfe44c59a074
diff --git a/authorization_set_test.cpp b/authorization_set_test.cpp
index a8efecc..c869d8d 100644
--- a/authorization_set_test.cpp
+++ b/authorization_set_test.cpp
@@ -54,6 +54,20 @@
EXPECT_EQ(set, set2);
}
+TEST(Construction, NullProvided) {
+ keymaster_key_param_t params[] = {
+ Authorization(TAG_PURPOSE, KM_PURPOSE_SIGN), Authorization(TAG_PURPOSE, KM_PURPOSE_VERIFY),
+ };
+
+ AuthorizationSet set1(params, 0);
+ EXPECT_EQ(0, set1.size());
+ EXPECT_EQ(AuthorizationSet::OK, set1.is_valid());
+
+ AuthorizationSet set2(reinterpret_cast<keymaster_key_param_t*>(NULL), array_length(params));
+ EXPECT_EQ(0, set2.size());
+ EXPECT_EQ(AuthorizationSet::OK, set2.is_valid());
+}
+
TEST(Lookup, NonRepeated) {
AuthorizationSet set(AuthorizationSetBuilder()
.Authorization(TAG_PURPOSE, KM_PURPOSE_SIGN)