About Social Code
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2025-07-08 09:53:08 -0400
committerMarge Bot <marge-bot@fdo.invalid>2025-07-09 05:48:22 +0000
commit0f5c66351336e0c2cbc3b060fc65d41f16656688 (patch)
tree1165ac85327fd1c42746b83ddde93fe7d506e8ae
parenteed207e597534813f457fa584bd404b40b32b3db (diff)
vulkan/cmd_queue: don't null deref when freeing pNext
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36004>
-rw-r--r--src/vulkan/util/vk_cmd_queue_gen.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/vulkan/util/vk_cmd_queue_gen.py b/src/vulkan/util/vk_cmd_queue_gen.py
index b7498d5d7ec..e80790b669b 100644
--- a/src/vulkan/util/vk_cmd_queue_gen.py
+++ b/src/vulkan/util/vk_cmd_queue_gen.py
@@ -583,9 +583,9 @@ def get_struct_free(field_name, struct_type, types):
member_frees = ""
if (struct_type in types):
for member in types[struct_type].members:
- member_name = "%s->%s" % (field_name, member.name)
+ member_name = "%s ? %s->%s : NULL" % (field_name, field_name, member.name)
if member.len and member.len != 'null-terminated':
- member_frees += "vk_free(queue->alloc, (void*)%s);\n" % member_name
+ member_frees += "vk_free(queue->alloc, (void*)(%s));\n" % member_name
elif member.name == 'pNext':
member_frees += get_pnext_member_free(struct_type, types, member_name)
return "%s %s\n" % (member_frees, struct_free)