From: Samuel Iglesias Gonsálvez Date: Fri, 19 Jan 2018 07:45:10 +0000 (+0100) Subject: anv: avoid segmentation fault due to vk_error() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7109a1fe132e5f79a25bb34f0f28a21cce3076db;p=mesa.git anv: avoid segmentation fault due to vk_error() vk_error() is a macro that calls __vk_errorf() with instance == NULL. Then, __vk_errorf() passes a pointer to instance->debug_report_callbacks to vk_debug_error(), which segfaults as this pointer is invalid but not NULL. Fixes: e5b1bd6ab8 "vulkan: move anv VK_EXT_debug_report implementation to common code." Signed-off-by: Samuel Iglesias Gonsálvez Reviewed-by: Tapani Pälli --- diff --git a/src/intel/vulkan/anv_util.c b/src/intel/vulkan/anv_util.c index 6b31224d7f1..3c1803aa056 100644 --- a/src/intel/vulkan/anv_util.c +++ b/src/intel/vulkan/anv_util.c @@ -99,14 +99,16 @@ __vk_errorf(struct anv_instance *instance, const void *object, snprintf(report, sizeof(report), "%s:%d: %s", file, line, error_str); } - vk_debug_report(&instance->debug_report_callbacks, - VK_DEBUG_REPORT_ERROR_BIT_EXT, - type, - (uint64_t) (uintptr_t) object, - line, - 0, - "anv", - report); + if (instance) { + vk_debug_report(&instance->debug_report_callbacks, + VK_DEBUG_REPORT_ERROR_BIT_EXT, + type, + (uint64_t) (uintptr_t) object, + line, + 0, + "anv", + report); + } intel_loge("%s", report);