[Mesa-dev] [PATCH] anv: avoid segmentation fault due to vk_error()
Tapani Pälli
tapani.palli at intel.com
Fri Jan 19 08:23:39 UTC 2018
Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
(Fixes e5b1bd6ab8)
On 01/19/2018 09:59 AM, Samuel Iglesias Gonsálvez wrote:
> 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.
>
> Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
> ---
> src/intel/vulkan/anv_util.c | 18 ++++++++++--------
> 1 file 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);
>
>
More information about the mesa-dev
mailing list