libvulkan: avoid allocation if final extension count is zero

This change also makes sure ExtensionFilter is properly initialized.

Bug: 161810298
Test: dEQP-VK.api.object_management.max_concurrent#instance
Change-Id: I2e3526b38fc5eeddf0e96d18dfd6f218bbb80201
diff --git a/vulkan/libvulkan/driver.cpp b/vulkan/libvulkan/driver.cpp
index 8deca47..997b332 100644
--- a/vulkan/libvulkan/driver.cpp
+++ b/vulkan/libvulkan/driver.cpp
@@ -120,6 +120,8 @@
 
         const char** names;
         uint32_t name_count;
+        ExtensionFilter()
+            : exts(nullptr), ext_count(0), names(nullptr), name_count(0) {}
     };
 
     VkResult SanitizeApiVersion();
@@ -607,6 +609,10 @@
     } else {
         count = std::min(filter.ext_count, dev_info_.enabledExtensionCount);
     }
+
+    if (!count)
+        return VK_SUCCESS;
+
     filter.names = reinterpret_cast<const char**>(allocator_.pfnAllocation(
         allocator_.pUserData, sizeof(const char*) * count, alignof(const char*),
         VK_SYSTEM_ALLOCATION_SCOPE_COMMAND));