Fix hidl_vec's constructor with initializer_list doesn't cast size properly.

Test: hidl_test
Test: libhidl_test
Change-Id: I0c155094555ecf3f6f1ea28b612b26b05a85f7ef
diff --git a/base/include/hidl/HidlSupport.h b/base/include/hidl/HidlSupport.h
index 24e8e9d..844ef40 100644
--- a/base/include/hidl/HidlSupport.h
+++ b/base/include/hidl/HidlSupport.h
@@ -271,8 +271,11 @@
     }
 
     hidl_vec(const std::initializer_list<T> list)
-            : mSize(list.size()),
-              mOwnsBuffer(true) {
+            : mOwnsBuffer(true) {
+        if (list.size() > UINT32_MAX) {
+            logAlwaysFatal("hidl_vec can't hold more than 2^32 elements.");
+        }
+        mSize = static_cast<uint32_t>(list.size());
         mBuffer = new T[mSize];
 
         size_t idx = 0;