radv: fix access to uninitialized radeon_bo_metadata

If the image tiling is set to VK_IMAGE_TILING_LINEAR,
buffer_set_metadata will read an uninitialized radeon_bo_metadata.

Signed-off-by: Simon Ser <contact@emersion.fr>
Fixes: d5fd8cd46e ("radv: Allow non-dedicated linear images and buffer.")
Cc: mesa-stable
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7898>
This commit is contained in:
Simon Ser 2020-12-03 16:03:15 +01:00 committed by Marge Bot
parent 614c77772a
commit ad19b0714a

View file

@ -5145,9 +5145,8 @@ bool radv_get_memory_fd(struct radv_device *device,
{
struct radeon_bo_metadata metadata;
if (memory->image) {
if (memory->image->tiling != VK_IMAGE_TILING_LINEAR)
radv_init_metadata(device, memory->image, &metadata);
if (memory->image && memory->image->tiling != VK_IMAGE_TILING_LINEAR) {
radv_init_metadata(device, memory->image, &metadata);
device->ws->buffer_set_metadata(memory->bo, &metadata);
}