diff options
author | Samuel Iglesias Gonsálvez <[email protected]> | 2018-01-19 08:45:10 +0100 |
---|---|---|
committer | Samuel Iglesias Gonsálvez <[email protected]> | 2018-01-19 09:39:05 +0100 |
commit | 7109a1fe132e5f79a25bb34f0f28a21cce3076db (patch) | |
tree | 084d4c563945c21ad1c49139653202680d17c77c /src | |
parent | 32170d87e3b7bee37234b44ff787ff60fcd3a9aa (diff) |
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 <[email protected]>
Reviewed-by: Tapani Pälli <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/intel/vulkan/anv_util.c | 18 |
1 files changed, 10 insertions, 8 deletions
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); |