Improve error handling when copying extension name
authorFufu Fang <fufu.fang@arm.com>
Wed, 24 Nov 2021 17:18:54 +0000 (17:18 +0000)
committerFufu Fang <fufu.fang@arm.com>
Mon, 29 Nov 2021 09:18:11 +0000 (09:18 +0000)
The extension list now calls abort() if an extension name exceeding
the length limit is copied.

Change-Id: I105946b647ebd0087dc892d7c8a227628da31966
Signed-off-by: Fufu Fang <fufu.fang@arm.com>
util/extension_list.cpp

index ec2184d938cdb4b7f21898b1015209403d471119..fd857c2f9c1e35d878bd4a5cce94d8d06e0d8eef 100644 (file)
@@ -47,12 +47,11 @@ VkResult extension_list::add(const char *const *extensions, uint32_t count)
    for (uint32_t i = 0; i < count; i++)
    {
       auto &dst = m_ext_props[initial_size + i];
-      strncpy(dst.extensionName, extensions[i], sizeof(dst.extensionName));
-
       if (strlen(extensions[i]) >= sizeof(dst.extensionName))
       {
-         dst.extensionName[sizeof(dst.extensionName) - 1] = '\0';
+         abort();
       }
+      strcpy(dst.extensionName, extensions[i]);
    }
    return VK_SUCCESS;
 }