From e6f6efa1100e49a48a895020304662eb5afbba6d Mon Sep 17 00:00:00 2001 From: "joonbum.ko" Date: Thu, 22 Mar 2018 15:13:13 +0900 Subject: [PATCH] samples: Fixed some coverity issues. - samples/tri.c : CID 104865 - Argument cannot be negative. CID 111624 - Wrong sizeof argument. - samples/vulkaninfo.c : CID 111617 - Wrong sizeof argument. Change-Id: I7bbac16c958b50c9a2225851949d6799e1f90f1e Signed-off-by: joonbum.ko --- samples/tri.c | 11 ++++++++--- samples/vulkaninfo.c | 9 +++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/samples/tri.c b/samples/tri.c index ec29647..36560d1 100644 --- a/samples/tri.c +++ b/samples/tri.c @@ -121,17 +121,18 @@ VKAPI_ATTR VkBool32 VKAPI_CALL 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); @@ -1251,6 +1252,10 @@ char *demo_read_spv(const char *filename, size_t *psize) { fseek(fp, 0L, SEEK_END); size = ftell(fp); + if (size < 0) { + fclose(fp); + return NULL; + } fseek(fp, 0L, SEEK_SET); diff --git a/samples/vulkaninfo.c b/samples/vulkaninfo.c index 4e4b719..e8f32a1 100644 --- a/samples/vulkaninfo.c +++ b/samples/vulkaninfo.c @@ -138,21 +138,22 @@ static VKAPI_ATTR VkBool32 VKAPI_CALL 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); } -- 2.7.4