anv: pCreateInfo->pApplicationInfo parameter to vkCreateInstance may be NULL

Fix a NULL pointer dereference in anv_CreateInstance in case
the pApplicationInfo field of the supplied VkInstanceCreateInfo
structure is NULL [1].

[1] https://www.khronos.org/registry/vulkan/specs/1.0/apispec.html#VkInstanceCreateInfo

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
This commit is contained in:
Philipp Zabel 2016-02-16 22:55:33 +01:00 committed by Jason Ekstrand
parent 48087cfc4e
commit ecd1d94d1c

View file

@ -214,7 +214,9 @@ VkResult anv_CreateInstance(
assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO);
uint32_t client_version = pCreateInfo->pApplicationInfo->apiVersion;
uint32_t client_version = pCreateInfo->pApplicationInfo ?
pCreateInfo->pApplicationInfo->apiVersion :
VK_MAKE_VERSION(1, 0, 0);
if (VK_MAKE_VERSION(1, 0, 0) > client_version ||
client_version > VK_MAKE_VERSION(1, 0, 3)) {
return vk_errorf(VK_ERROR_INCOMPATIBLE_DRIVER,
@ -249,7 +251,7 @@ VkResult anv_CreateInstance(
else
instance->alloc = default_alloc;
instance->apiVersion = pCreateInfo->pApplicationInfo->apiVersion;
instance->apiVersion = client_version;
instance->physicalDeviceCount = -1;
_mesa_locale_init();