tu: fix tu_GetInstanceProcAddr not handling null instance
authorMark Collins <mark@igalia.com>
Thu, 9 Mar 2023 23:50:57 +0000 (23:50 +0000)
committerMarge Bot <emma+marge@anholt.net>
Mon, 13 Mar 2023 19:31:33 +0000 (19:31 +0000)
It is legal to pass in nullptr as an instance into
vkGetInstanceProcAddr when resolving any global addresses, this
wasn't handled correctly and an illegal access to a member of
a null struct was made.

Signed-off-by: Mark Collins <mark@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21827>

src/freedreno/vulkan/tu_device.c

index 9d25cca..3b82ec5 100644 (file)
@@ -2515,7 +2515,7 @@ VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL
 tu_GetInstanceProcAddr(VkInstance _instance, const char *pName)
 {
    TU_FROM_HANDLE(tu_instance, instance, _instance);
-   return vk_instance_get_proc_addr(&instance->vk,
+   return vk_instance_get_proc_addr(instance != NULL ? &instance->vk : NULL,
                                     &tu_instance_entrypoints,
                                     pName);
 }