[Mesa-dev] [PATCH v2] anv: fix descriptor pool internal size allocation

Jason Ekstrand jason at jlekstrand.net
Thu Jan 26 17:06:16 UTC 2017


Thanks for catching this!

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Cc: "17.0 13.0" <mesa-stable at lists.freedesktop.org>

On Thu, Jan 26, 2017 at 3:18 AM, Lionel Landwerlin <
lionel.g.landwerlin at intel.com> wrote:

> The size of the pool is slightly smaller than the size of the
> structure containing the whole pool. We need to take that into account
> on when setting up the internals.
>
> Fixes a crash due to out of bound memory access in:
>    dEQP-VK.api.descriptor_pool.out_of_pool_memory
>
> v2: Drop debug traces (Lionel)
>
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> ---
>  src/intel/vulkan/anv_descriptor_set.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_
> descriptor_set.c
> index a4b7638a61..7853ec7dd9 100644
> --- a/src/intel/vulkan/anv_descriptor_set.c
> +++ b/src/intel/vulkan/anv_descriptor_set.c
> @@ -329,18 +329,18 @@ VkResult anv_CreateDescriptorPool(
>        }
>     }
>
> -   const size_t size =
> -      sizeof(*pool) +
> +   const size_t pool_size =
>        pCreateInfo->maxSets * sizeof(struct anv_descriptor_set) +
>        descriptor_count * sizeof(struct anv_descriptor) +
>        buffer_count * sizeof(struct anv_buffer_view);
> +   const size_t total_size = sizeof(*pool) + pool_size;
>
> -   pool = vk_alloc2(&device->alloc, pAllocator, size, 8,
> +   pool = vk_alloc2(&device->alloc, pAllocator, total_size, 8,
>                       VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
>     if (!pool)
>        return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
>
> -   pool->size = size;
> +   pool->size = pool_size;
>     pool->next = 0;
>     pool->free_list = EMPTY;
>
> --
> 2.11.0
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170126/ea095e1a/attachment.html>


More information about the mesa-dev mailing list