Remove compile warning messages 68/221368/10
authorIlho Kim <ilho159.kim@samsung.com>
Thu, 2 Jan 2020 02:02:48 +0000 (11:02 +0900)
committerIlho Kim <ilho159.kim@samsung.com>
Tue, 7 Jan 2020 08:22:09 +0000 (17:22 +0900)
Change-Id: If6f4ce84dcc023fdd71942ada681a5f08f8bf61a
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
plugin/app2sd/lib/app2sd_client_interface.c
plugin/app2sd/server/app2sd_interface.c
plugin/app2sd/server/app2sd_internals.c

index 672d96d..739ef05 100644 (file)
@@ -142,7 +142,11 @@ static int __app2sd_delete_temp_directories(const char *pkgid,
                return APP2EXT_SUCCESS;
 
        _app2sd_set_application_path(pkgid, uid, app_path, sizeof(app_path));
-       snprintf(temp_path, sizeof(temp_path), "%s.new", app_path);
+       ret = snprintf(temp_path, sizeof(temp_path), "%s.new", app_path);
+       if (ret < 0 || ret > sizeof(temp_path)) {
+               _E("snprintf fail");
+               return APP2EXT_ERROR_DELETE_DIRECTORY;
+       }
 
        /* this will delete all files under temp_path */
        ret = _app2sd_delete_directory(temp_path);
@@ -174,8 +178,12 @@ static int __app2sd_create_default_directories(const char *pkgid,
                }
        }
 
-       snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
+       ret = snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
                application_path);
+       if (ret < 0 || ret > sizeof(app_mmc_path)) {
+               _E("snprintf fail");
+               return APP2EXT_ERROR_CREATE_DIRECTORY;
+       }
        ret = mkdir(app_mmc_path, mode);
        if (ret) {
                if (errno != EEXIST) {
@@ -187,8 +195,12 @@ static int __app2sd_create_default_directories(const char *pkgid,
 
        if (cmd == APP2SD_PRE_UPGRADE) {
                /* application_path for {pkgid}.new */
-               snprintf(temp_path, sizeof(temp_path), "%s.new",
+               ret = snprintf(temp_path, sizeof(temp_path), "%s.new",
                        application_path);
+               if (ret < 0 || ret > sizeof(temp_path)) {
+                       _E("snprintf fail");
+                       return APP2EXT_ERROR_CREATE_DIRECTORY;
+               }
                ret = mkdir(temp_path, mode);
                if (ret) {
                        if (errno != EEXIST) {
@@ -198,8 +210,12 @@ static int __app2sd_create_default_directories(const char *pkgid,
                        }
                }
                /* app_mmc_path for {pkgid}.new */
-               snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
+               ret = snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
                        temp_path);
+               if (ret < 0 || ret > sizeof(app_mmc_path)) {
+                       _E("snprintf fail");
+                       return APP2EXT_ERROR_CREATE_DIRECTORY;
+               }
                ret = mkdir(app_mmc_path, mode);
                if (ret) {
                        if (errno != EEXIST) {
index f1df396..d9beb68 100644 (file)
@@ -78,6 +78,21 @@ static int __app2sd_finalize_device_setup(const char *pkgid,
        return ret;
 }
 
+static int __app2sd_delete_app_mmc_path(const char* application_path)
+{
+       char app_mmc_path[FILENAME_MAX];
+       int ret;
+
+       ret = snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
+                       application_path);
+       if (ret < 0 || ret > sizeof(app_mmc_path)) {
+               _E("snprintf fail");
+               return -1;
+       }
+
+       return _app2sd_delete_directory(app_mmc_path);
+}
+
 int app2sd_usr_pre_app_install(const char *pkgid, GList *dir_list, int size,
                uid_t uid)
 {
@@ -202,7 +217,6 @@ int app2sd_usr_post_app_install(const char *pkgid,
        char *sdpath;
        char mmc_path[FILENAME_MAX];
        char application_path[FILENAME_MAX];
-       char app_mmc_path[FILENAME_MAX];
        char loopback_device[FILENAME_MAX];
        int ret;
        int pkgmgr_ret;
@@ -231,8 +245,6 @@ int app2sd_usr_post_app_install(const char *pkgid,
 
        _app2sd_set_application_path(pkgid, uid, application_path,
                        sizeof(application_path));
-       snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
-                       application_path);
 
        ret = __app2sd_finalize_device_setup(pkgid, loopback_device,
                        application_path, uid);
@@ -256,7 +268,7 @@ int app2sd_usr_post_app_install(const char *pkgid,
                if (ret)
                        _E("unable to delete info");
 
-               ret = _app2sd_delete_directory(app_mmc_path);
+               ret = __app2sd_delete_app_mmc_path(application_path);
                if (ret)
                        _E("unable to delete the directory (%s)",
                                        application_path);
@@ -543,7 +555,6 @@ int app2sd_usr_post_app_uninstall(const char *pkgid, uid_t uid)
 {
        char mmc_path[FILENAME_MAX];
        char application_path[FILENAME_MAX];
-       char app_mmc_path[FILENAME_MAX];
        char loopback_device[FILENAME_MAX];
        char *sdpath;
        int ret;
@@ -573,8 +584,6 @@ int app2sd_usr_post_app_uninstall(const char *pkgid, uid_t uid)
 
        _app2sd_set_application_path(pkgid, uid, application_path,
                        sizeof(application_path));
-       snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
-                       application_path);
 
        ret = __app2sd_finalize_device_setup(pkgid, loopback_device,
                        application_path, uid);
@@ -591,7 +600,7 @@ int app2sd_usr_post_app_uninstall(const char *pkgid, uid_t uid)
                goto END;
        }
 
-       ret = _app2sd_delete_directory(app_mmc_path);
+       ret = __app2sd_delete_app_mmc_path(application_path);
        if (ret) {
                _E("unable to delete the directory (%s)", application_path);
                goto END;
@@ -979,8 +988,12 @@ int app2sd_enable_full_pkg(void)
                if (strcmp(entry->d_name, ".") == 0 ||
                                strcmp(entry->d_name, "..") == 0)
                        continue;
-               snprintf(loopback_device, sizeof(loopback_device), "%s/%s",
+               ret = snprintf(loopback_device, sizeof(loopback_device), "%s/%s",
                                app2sd_path, entry->d_name);
+               if (ret < 0 || ret > sizeof(loopback_device)) {
+                       _E("snprintf fail");
+                       continue;
+               }
                ret = _app2sd_get_info_from_db(loopback_device,
                                &pkgid, &uid);
                if (ret) {
@@ -1141,7 +1154,6 @@ int app2sd_pre_migrate_legacy(const char *pkgid, uid_t uid)
        }
        snprintf(mmc_path, sizeof(mmc_path), "%s/%s", sdpath, EXTIMG_DIR);
        free(sdpath);
-       snprintf(file_path, sizeof(file_path), "%s/%s", mmc_path, pkgid);
 
        ret = _app2sd_initialize_db();
        if (ret) {
@@ -1168,6 +1180,13 @@ int app2sd_pre_migrate_legacy(const char *pkgid, uid_t uid)
        } else {
                free(filename);
                _W("same pkg exists, remove legacy file (%s)", file_path);
+
+               ret = snprintf(file_path, sizeof(file_path), "%s/%s", mmc_path, pkgid);
+               if (ret < 0 || ret > sizeof(file_path)) {
+                       _E("snprintf fail");
+                       return APP2EXT_ERROR_PKG_EXISTS;
+               }
+
                ret = remove(file_path);
                if (ret < 0)
                        _E("failed to remove, errno(%d)", errno);
@@ -1253,8 +1272,14 @@ int app2sd_migrate_legacy_all(void)
                if (strcmp(entry->d_name, ".") == 0 ||
                                strcmp(entry->d_name, "..") == 0)
                        continue;
-               snprintf(loopback_device, sizeof(loopback_device), "%s/%s",
+               ret = snprintf(loopback_device, sizeof(loopback_device), "%s/%s",
                                app2sd_path, entry->d_name);
+               if (ret < 0 || ret > sizeof(loopback_device)) {
+                       _E("snprintf fail");
+                       pkgmgr_client_free(pc);
+                       closedir(dir);
+                       return -1;
+               }
                /* check losetup image */
                if (_app2sd_crypt_is_luks(loopback_device) == 0) {
                        /* call installer backend
index b97f38a..6fb9fd2 100644 (file)
@@ -146,9 +146,9 @@ int _app2sd_dmcrypt_open_device(const char *pkgid, const char *loopback_device,
                bool is_dup, uid_t uid, char **dev_node)
 {
        int ret;
+       int size;
        char *passwd;
        char dev_name[BUF_SIZE];
-       char buf[BUF_SIZE];
 
        if (pkgid == NULL || loopback_device == NULL) {
                _E("invalid argument");
@@ -187,12 +187,13 @@ int _app2sd_dmcrypt_open_device(const char *pkgid, const char *loopback_device,
                return APP2EXT_ERROR_OPEN_DMCRYPT_DEVICE;
        }
 
-       snprintf(buf, sizeof(buf), "/dev/mapper/%s", dev_name);
-       *dev_node = strdup(buf);
+       size = strlen("/dev/mapper/%s") + strlen(dev_name) + 1;
+       *dev_node = (char *)malloc(size);
        if (*dev_node == NULL) {
                _E("memory alloc failed");
                return APP2EXT_ERROR_OPEN_DMCRYPT_DEVICE;
        }
+       snprintf(*dev_node, size, "/dev/mapper/%s", dev_name);
 
        return ret;
 }
@@ -438,8 +439,12 @@ int _app2sd_mount_app_content(const char *application_path, const char *pkgid,
        }
        close(fd);
 
-       snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
+       ret = snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
                        application_path);
+       if (ret < 0 || ret > sizeof(app_mmc_path)) {
+               _E("snprintf fail");
+               return APP2EXT_ERROR_OPEN_DIR;
+       }
        fd = open(app_mmc_path, O_RDONLY | O_DIRECTORY);
        if (fd < 0) {
                _E("path(%s) error(%d)", app_mmc_path, errno);
@@ -515,8 +520,12 @@ int _app2sd_mount_app_content(const char *application_path, const char *pkgid,
        if (mount_type != MOUNT_TYPE_RD &&
                        mount_type != MOUNT_TYPE_RD_REMOUNT) {
                /* change lost+found permission */
-               snprintf(temp_path, sizeof(temp_path), "%s/lost+found",
+               ret = snprintf(temp_path, sizeof(temp_path), "%s/lost+found",
                                app_mmc_path);
+               if (ret < 0 || ret > sizeof(temp_path)) {
+                       _E("snprintf fail");
+                       return APP2EXT_ERROR_CREATE_DIRECTORY;
+               }
                ret = _app2sd_make_directory(temp_path, uid);
                if (ret) {
                        _E("create directory(%s) failed", temp_path);
@@ -608,10 +617,18 @@ static int _app2sd_move_app_to_external(const char *pkgid, GList *dir_list,
                                uid);
        }
 
-       snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
+       ret = snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
                        application_path);
-       snprintf(app_archive_path, sizeof(app_archive_path), "%s/.archive",
+       if (ret < 0 || ret > sizeof(app_mmc_path)) {
+               _E("snprintf fail");
+               return APP2EXT_ERROR_CREATE_DIRECTORY;
+       }
+       ret = snprintf(app_archive_path, sizeof(app_archive_path), "%s/.archive",
                        application_path);
+       if (ret < 0 || ret > sizeof(app_archive_path)) {
+               _E("snprintf fail");
+               return APP2EXT_ERROR_CREATE_DIRECTORY;
+       }
 
        ret = mkdir(app_mmc_path, mode);
        if (ret) {
@@ -636,8 +653,12 @@ static int _app2sd_move_app_to_external(const char *pkgid, GList *dir_list,
                if (dir_detail == NULL || dir_detail->name == NULL ||
                                dir_detail->type != APP2EXT_DIR_RO)
                        continue;
-               snprintf(temp_dir_path, sizeof(temp_dir_path), "%s/%s",
+               ret = snprintf(temp_dir_path, sizeof(temp_dir_path), "%s/%s",
                                application_path, dir_detail->name);
+               if (ret < 0 || ret > sizeof(temp_dir_path)) {
+                       _E("snprintf fail");
+                       return APP2EXT_ERROR_MMC_STATUS;
+               }
                _D("cal size of app dirs, temp_dir_path(%s)", temp_dir_path);
                total_size += _app2sd_calculate_dir_size(temp_dir_path);
        }
@@ -692,8 +713,13 @@ static int _app2sd_move_app_to_external(const char *pkgid, GList *dir_list,
                if (dir_detail == NULL || dir_detail->name == NULL ||
                                dir_detail->type != APP2EXT_DIR_RO)
                        continue;
-               snprintf(temp_dir_path, sizeof(temp_dir_path), "%s/%s",
+               ret = snprintf(temp_dir_path, sizeof(temp_dir_path), "%s/%s",
                                application_path, dir_detail->name);
+               if (ret < 0 || ret > sizeof(temp_dir_path)) {
+                       _E("snprintf fail");
+                       ret = APP2EXT_ERROR_MOVE;
+                       goto ERR;
+               }
                _D("app2archive, temp_dir_path(%s)", temp_dir_path);
                ret = _app2sd_move_to_archive(temp_dir_path, app_archive_path);
                if (ret) {
@@ -718,8 +744,13 @@ static int _app2sd_move_app_to_external(const char *pkgid, GList *dir_list,
                if (dir_detail == NULL || dir_detail->name == NULL ||
                                dir_detail->type != APP2EXT_DIR_RO)
                        continue;
-               snprintf(temp_dir_path, sizeof(temp_dir_path), "%s/%s",
+               ret = snprintf(temp_dir_path, sizeof(temp_dir_path), "%s/%s",
                                app_archive_path, dir_detail->name);
+               if (ret < 0 || ret > sizeof(temp_dir_path)) {
+                       _E("snprintf fail");
+                       ret = APP2EXT_ERROR_COPY_DIRECTORY;
+                       goto ERR;
+               }
                _D("archive2mmc, temp_dir_path(%s)", temp_dir_path);
                ret = _app2sd_copy_dir(temp_dir_path, app_mmc_path);
                if (ret) {
@@ -858,10 +889,20 @@ static int _app2sd_move_app_to_internal(const char *pkgid, GList *dir_list,
                goto ERR;
        }
 
-       snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
+       ret = snprintf(app_mmc_path, sizeof(app_mmc_path), "%s/.mmc",
                        application_path);
-       snprintf(app_archive_path, sizeof(app_archive_path), "%s/.archive",
+       if (ret < 0 || ret > sizeof(app_mmc_path)) {
+               _E("snprintf fail");
+               ret = -1;
+               goto ERR;
+       }
+       ret = snprintf(app_archive_path, sizeof(app_archive_path), "%s/.archive",
                        application_path);
+       if (ret < 0 || ret > sizeof(app_archive_path)) {
+               _E("snprintf fail");
+               ret = -1;
+               goto ERR;
+       }
 
        ret = mkdir(app_archive_path, mode);
        if (ret) {
@@ -879,8 +920,13 @@ static int _app2sd_move_app_to_internal(const char *pkgid, GList *dir_list,
                                dir_detail->type != APP2EXT_DIR_RO)
                        continue;
                /* archiving code */
-               snprintf(temp_dir_path, sizeof(temp_dir_path), "%s/%s",
+               ret = snprintf(temp_dir_path, sizeof(temp_dir_path), "%s/%s",
                                app_mmc_path, dir_detail->name);
+               if (ret < 0 || ret > sizeof(temp_dir_path)) {
+                       _E("snprintf fail");
+                       ret = -1;
+                       goto ERR;
+               }
                _D("mmc2archive, temp_dir_path(%s)", temp_dir_path);
                ret = _app2sd_copy_dir(temp_dir_path, app_archive_path);
                if (ret) {
@@ -896,8 +942,13 @@ static int _app2sd_move_app_to_internal(const char *pkgid, GList *dir_list,
                        goto ERR;
                }
                /* delete the symbolic link files [bin, lib, res]*/
-               snprintf(temp_dir_path, sizeof(temp_dir_path), "%s/%s",
+               ret = snprintf(temp_dir_path, sizeof(temp_dir_path), "%s/%s",
                                application_path, dir_detail->name);
+               if (ret < 0 || ret > sizeof(temp_dir_path)) {
+                       _E("snprintf fail");
+                       ret = -1;
+                       goto ERR;
+               }
                _D("unlink, temp_dir_path(%s)", temp_dir_path);
                ret = unlink(temp_dir_path);
                if (ret) {
@@ -911,8 +962,13 @@ static int _app2sd_move_app_to_internal(const char *pkgid, GList *dir_list,
                        }
                }
                /* Copy content to destination */
-               snprintf(temp_dir_path, sizeof(temp_dir_path), "%s/%s",
+               ret = snprintf(temp_dir_path, sizeof(temp_dir_path), "%s/%s",
                                app_archive_path, dir_detail->name);
+               if (ret < 0 || ret > sizeof(temp_dir_path)) {
+                       _E("snprintf fail");
+                       ret = -1;
+                       goto ERR;
+               }
                _D("archive2app, temp_dir_path(%s)", temp_dir_path);
                ret = _app2sd_copy_dir(temp_dir_path, application_path);
                if (ret) {