dbgFunc(VkFlags msgFlags, VkDebugReportObjectTypeEXT objType,
uint64_t srcObject, size_t location, int32_t msgCode,
const char *pLayerPrefix, const char *pMsg, void *pUserData) {
- char *message = (char *)malloc(strlen(pMsg) + 100);
+ int message_len = strlen(pMsg) + 100;
+ char *message = (char *)malloc(message_len);
assert(message);
validation_error = 1;
if (msgFlags & VK_DEBUG_REPORT_ERROR_BIT_EXT) {
- snprintf(message, sizeof(message), "ERROR: [%s] Code %d : %s",
+ snprintf(message, message_len, "ERROR: [%s] Code %d : %s",
pLayerPrefix, msgCode, pMsg);
} else if (msgFlags & VK_DEBUG_REPORT_WARNING_BIT_EXT) {
- snprintf(message, sizeof(message), "WARNING: [%s] Code %d : %s",
+ snprintf(message, message_len, "WARNING: [%s] Code %d : %s",
pLayerPrefix, msgCode, pMsg);
} else {
free(message);
fseek(fp, 0L, SEEK_END);
size = ftell(fp);
+ if (size < 0) {
+ fclose(fp);
+ return NULL;
+ }
fseek(fp, 0L, SEEK_SET);
dbg_callback(VkFlags msgFlags, VkDebugReportObjectTypeEXT objType,
uint64_t srcObject, size_t location, int32_t msgCode,
const char *pLayerPrefix, const char *pMsg, void *pUserData) {
+ int message_len = strlen(pMsg) + 100;
char *message = (char *)malloc(strlen(pMsg) + 100);
assert(message);
if (msgFlags & VK_DEBUG_REPORT_ERROR_BIT_EXT) {
- snprintf(message, sizeof(message), "ERROR: [%s] Code %d : %s",
+ snprintf(message, message_len, "ERROR: [%s] Code %d : %s",
pLayerPrefix, msgCode, pMsg);
} else if (msgFlags & VK_DEBUG_REPORT_WARNING_BIT_EXT) {
- snprintf(message, sizeof(message), "WARNING: [%s] Code %d : %s",
+ snprintf(message, message_len, "WARNING: [%s] Code %d : %s",
pLayerPrefix, msgCode, pMsg);
} else if (msgFlags & VK_DEBUG_REPORT_INFORMATION_BIT_EXT) {
- snprintf(message, sizeof(message), "INFO: [%s] Code %d : %s",
+ snprintf(message, message_len, "INFO: [%s] Code %d : %s",
pLayerPrefix, msgCode, pMsg);
} else if (msgFlags & VK_DEBUG_REPORT_DEBUG_BIT_EXT) {
- snprintf(message, sizeof(message), "DEBUG: [%s] Code %d : %s",
+ snprintf(message, message_len, "DEBUG: [%s] Code %d : %s",
pLayerPrefix, msgCode, pMsg);
}