summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSamuel Iglesias Gonsálvez <[email protected]>2018-01-19 08:45:10 +0100
committerSamuel Iglesias Gonsálvez <[email protected]>2018-01-19 09:39:05 +0100
commit7109a1fe132e5f79a25bb34f0f28a21cce3076db (patch)
tree084d4c563945c21ad1c49139653202680d17c77c /src
parent32170d87e3b7bee37234b44ff787ff60fcd3a9aa (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.c18
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);