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)