samples: Fixed some coverity issues. 17/173517/1
authorjoonbum.ko <joonbum.ko@samsung.com>
Thu, 22 Mar 2018 06:13:13 +0000 (15:13 +0900)
committerjoonbum.ko <joonbum.ko@samsung.com>
Thu, 22 Mar 2018 06:19:10 +0000 (15:19 +0900)
 - 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 <joonbum.ko@samsung.com>
samples/tri.c
samples/vulkaninfo.c

index ec29647..36560d1 100644 (file)
@@ -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);
 
index 4e4b719..e8f32a1 100644 (file)
@@ -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);
     }