Fixed Svace from MCD: WID 144878 91/177891/1 accepted/tizen/4.0/unified/20180508.071437 submit/tizen_4.0/20180504.073824
authorsaerome.kim <saerome.kim@samsung.com>
Fri, 4 May 2018 07:17:59 +0000 (16:17 +0900)
committersaerome kim <saerome.kim@samsung.com>
Fri, 4 May 2018 07:19:47 +0000 (07:19 +0000)
Change-Id: I545451032e112fcab68eae50c9f2ecef3b7e7a51
Signed-off-by: saerome.kim <saerome.kim@samsung.com>
src/util/mtp_util.c

index 273fd13..00d7c82 100755 (executable)
@@ -341,7 +341,8 @@ static bool _util_device_external_supported_cb(int storage_id, storage_type_e ty
        //DBG("storage id: %d, path: %s", storage_id, path);
 
        if (type == STORAGE_TYPE_EXTERNAL && path != NULL) {
-               strncpy(storage_path, path, strlen(path));
+               strncpy(storage_path, path, strlen(path)+1);
+               storage_path[strlen(path)] = 0;
                //DBG("external storage path : %s", storage_path);
        }
 
@@ -356,8 +357,10 @@ void _util_get_external_path(char *external_path)
 
        if (error != STORAGE_ERROR_NONE) {
                ERR("get external storage path Fail");
-               if (external_path != NULL)
-                       strncpy(external_path, MTP_EXTERNAL_PATH_CHAR, strlen(MTP_EXTERNAL_PATH_CHAR) + 1);
+               if (external_path != NULL) {
+                       strncpy(external_path, MTP_EXTERNAL_PATH_CHAR, sizeof(MTP_EXTERNAL_PATH_CHAR));
+                       external_path[sizeof(MTP_EXTERNAL_PATH_CHAR) - 1] = 0;
+               }
        }
 }
 uid_t _util_get_active_user()
@@ -408,14 +411,16 @@ void _util_get_internal_path(char *internal_path)
 
        if (active_name == NULL) {
                ERR("active_name is NULL");
-               strncpy(internal_path, MTP_USER_DIRECTORY, strlen(MTP_USER_DIRECTORY) + 1);
+               strncpy(internal_path, MTP_USER_DIRECTORY, sizeof(MTP_USER_DIRECTORY));
+               internal_path[sizeof(MTP_USER_DIRECTORY) - 1] = 0;
                return;
        }
 
        if (internal_path != NULL) {
-               strncpy(internal_path, MTP_INTERNAL_PATH_CHAR, strlen(MTP_INTERNAL_PATH_CHAR) + 1);
+               strncpy(internal_path, MTP_INTERNAL_PATH_CHAR, sizeof(MTP_INTERNAL_PATH_CHAR));
                strncat(internal_path, active_name, strlen(active_name) + 1);
                strncat(internal_path, "/media", 7);
+               internal_path[strlen(internal_path)] = 0;
        }
 
        ERR("internal path is %s", internal_path);