Fix wrong pointer usage
authorCharles Giessen <charles@lunarg.com>
Mon, 3 Jul 2023 21:44:02 +0000 (15:44 -0600)
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>
Tue, 18 Jul 2023 21:49:15 +0000 (15:49 -0600)
get_override_layer_override_paths logs the path used, but during the refactor it
failed to dereference the double pointer properly, leading to the loader_log
message reading garbage. This was not caught on x64 address sanitizer builds, but
was on the 32 bit build.

loader/loader.c

index 7eb9881a267c4256bffaf304d77dd2ffc623f8e6..3f9034fa0ff40b2e52065666a4611c56c1dedd68 100644 (file)
@@ -3790,8 +3790,8 @@ VkResult get_override_layer_override_paths(struct loader_instance *inst, struct
         --cur_write_ptr;
         assert(cur_write_ptr - (*override_paths) < (ptrdiff_t)override_path_size);
         *cur_write_ptr = '\0';
-        loader_log(NULL, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_LAYER_BIT, 0, "Override layer has override paths set to %s",
-                   override_paths);
+        loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_LAYER_BIT, 0, "Override layer has override paths set to %s",
+                   *override_paths);
     }
     return VK_SUCCESS;
 }