aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--layers/vk_layer_logging.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/layers/vk_layer_logging.h b/layers/vk_layer_logging.h
index 6a3ec01a..424031a4 100644
--- a/layers/vk_layer_logging.h
+++ b/layers/vk_layer_logging.h
@@ -242,9 +242,13 @@ static inline bool log_msg(debug_report_data *debug_data, VkFlags msgFlags, VkDe
va_list argptr;
va_start(argptr, format);
char *str;
- vasprintf(&str, format, argptr);
+ if (-1 == vasprintf(&str, format, argptr)) {
+ /* on failure, glibc vasprintf leaves str undefined */
+ str = nullptr;
+ }
va_end(argptr);
- bool result = debug_report_log_msg(debug_data, msgFlags, objectType, srcObject, location, msgCode, pLayerPrefix, str);
+ bool result = debug_report_log_msg(debug_data, msgFlags, objectType, srcObject, location, msgCode, pLayerPrefix,
+ str ? str : "Allocation failure");
free(str);
return result;
}