From eec27302a99ad6432022d05d8b26883e09b9bff4 Mon Sep 17 00:00:00 2001 From: Joonbum Ko Date: Tue, 27 Nov 2018 15:38:11 +0900 Subject: [PATCH] icd: Fixed to prevent string overflow. Change-Id: Ia486efdc975eb238044de0763fddfd3e3127bfdd Signed-off-by: Joonbum Ko --- src/wsi/icd.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/wsi/icd.c b/src/wsi/icd.c index 6c52139..134eb72 100644 --- a/src/wsi/icd.c +++ b/src/wsi/icd.c @@ -55,19 +55,22 @@ static const VkExtensionProperties wsi_instance_extensions[] = { static void __attribute__((constructor)) module_init(void) { - const char *filename; + const char *env_filename; + char icd_filepath[1024]; uint32_t count; VkResult res; PFN_vkEnumerateInstanceExtensionProperties enum_inst_exts; /* Get env var for ICD path. */ - filename = getenv("VK_TIZEN_ICD"); - VK_CHECK(filename, return, "No ICD library given.\n"); + env_filename = getenv("VK_TIZEN_ICD"); + VK_CHECK(env_filename, return, "No ICD library given.\n"); dlerror(); + strncpy(icd_filepath, env_filename, sizeof(icd_filepath)); + /* Open ICD file. */ - icd.lib = dlopen(filename, RTLD_LAZY | RTLD_LOCAL); + icd.lib = dlopen(icd_filepath, RTLD_LAZY | RTLD_LOCAL); VK_CHECK(icd.lib, return, "dlopen() failed - %s\n", dlerror()); /* Retrieve our first entry point for vulkan symbols. */ -- 2.7.4