Skip to content

Commit 116881b

Browse files
committed
vulkan/swapchain: avoid use after free on stack allocated debug tag
1 parent a701ba4 commit 116881b

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

src/vulkan/swapchain.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -708,8 +708,7 @@ static bool vk_sw_image_init(pl_swapchain sw, int idx)
708708

709709
pl_assert(current->vkimages.elem[idx] != VK_NULL_HANDLE);
710710

711-
char name[32];
712-
snprintf(name, sizeof(name), "swapchain #%d", idx);
711+
char *name = pl_asprintf(NULL, "swapchain #%d", idx);
713712
pl_tex tex = pl_vulkan_wrap(gpu, pl_vulkan_wrap_params(
714713
.image = current->vkimages.elem[idx],
715714
.width = p->protoInfo.imageExtent.width,
@@ -719,8 +718,11 @@ static bool vk_sw_image_init(pl_swapchain sw, int idx)
719718
.debug_tag = name,
720719
));
721720

722-
if (!tex)
721+
if (!tex) {
722+
pl_free(name);
723723
goto error;
724+
}
725+
pl_steal((void *) tex, name);
724726

725727
current->images.elem[idx] = tex;
726728
current->vkimages.elem[idx] = VK_NULL_HANDLE;

0 commit comments

Comments
 (0)