vulkan/wsi/wayland: fix an invalid u_vector_init call
authorChia-I Wu <olvaffe@gmail.com>
Tue, 5 Oct 2021 01:01:06 +0000 (18:01 -0700)
committerMarge Bot <eric+marge@anholt.net>
Tue, 5 Oct 2021 17:42:41 +0000 (17:42 +0000)
u_vector_init requires size to be power-of-two.

Fixes: 151b65b2119 ("vulkan/wsi/wayland: generalize modifier handling")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13186>

src/vulkan/wsi/wsi_common_wayland.c

index 4d16ba6..e36a468 100644 (file)
@@ -455,8 +455,9 @@ wsi_wl_display_init(struct wsi_wayland *wsi_wl,
    VkResult result = VK_SUCCESS;
    memset(display, 0, sizeof(*display));
 
-   if (!u_vector_init(&display->formats, sizeof(struct wsi_wl_format),
-                      8 * sizeof(struct wsi_wl_format)))
+   const size_t elem_size =
+      util_next_power_of_two(sizeof(struct wsi_wl_format));
+   if (!u_vector_init(&display->formats, elem_size, 8 * elem_size))
       return VK_ERROR_OUT_OF_HOST_MEMORY;
 
    display->wsi_wl = wsi_wl;