Fix static analysis issue
[platform/core/appfw/pkgmgr-info.git] / src / pkgmgrinfo_appinfo.c
index bc42092..b50e08d 100644 (file)
@@ -332,52 +332,6 @@ static int _appinfo_get_splashscreens(sqlite3 *db, const char *appid,
        return PMINFO_R_OK;
 }
 
-static int _appinfo_get_component_info(sqlite3 *db, const char *appid,
-               GList **components)
-{
-       static const char query_raw[] =
-               "SELECT component_id, type, launch_mode "
-               "FROM package_app_component_info "
-               "WHERE app_id=%Q";
-       int ret;
-       char *query;
-       sqlite3_stmt *stmt;
-       int idx;
-       component_x *info;
-
-       query = sqlite3_mprintf(query_raw, appid);
-       if (query == NULL) {
-               LOGE("out of memory");
-               return PMINFO_R_ERROR;
-       }
-
-       ret = sqlite3_prepare_v2(db, query, strlen(query), &stmt, NULL);
-       sqlite3_free(query);
-       if (ret != SQLITE_OK) {
-               LOGE("prepare failed: %s", sqlite3_errmsg(db));
-               return PMINFO_R_ERROR;
-       }
-
-       while (sqlite3_step(stmt) == SQLITE_ROW) {
-               info = calloc(1, sizeof(component_x));
-               if (info == NULL) {
-                       LOGE("out of memory");
-                       sqlite3_finalize(stmt);
-                       return PMINFO_R_ERROR;
-               }
-
-               idx = 0;
-               _save_column_str(stmt, idx++, &info->id);
-               _save_column_str(stmt, idx++, &info->type);
-               _save_column_str(stmt, idx++, &info->launch_mode);
-               *components = g_list_append(*components, info);
-       }
-
-       sqlite3_finalize(stmt);
-
-       return PMINFO_R_OK;
-}
-
 static GList *__get_background_category(const char *value)
 {
        GList *category_list = NULL;
@@ -667,6 +621,7 @@ static int _appinfo_get_applications(uid_t db_uid, uid_t uid,
                        info->background_category = __get_background_category(
                                        bg_category_str);
                        free(bg_category_str);
+                       bg_category_str = NULL;
                }
 
                info->for_all_users =
@@ -749,15 +704,6 @@ static int _appinfo_get_applications(uid_t db_uid, uid_t uid,
                        }
                }
 
-               if (info->component &&
-                               !strcmp(info->component, "componentbasedapp")) {
-                       if (_appinfo_get_component_info(db, info->appid,
-                                               &info->components)) {
-                               ret = PMINFO_R_ERROR;
-                               goto catch;
-                       }
-               }
-
                if (is_check_storage &&
                                __appinfo_check_installed_storage(info) != PMINFO_R_OK) {
                        ret = PMINFO_R_ERROR;
@@ -840,8 +786,21 @@ static int _pkgmgrinfo_get_appinfo(const char *appid, uid_t uid,
        }
 
        info->app_info = (application_x *)g_hash_table_lookup(list, appid);
+       if (!info->app_info || !info->app_info->package) {
+               _LOGD("appinfo for [%s] is not existed for user [%d]",
+                               appid, uid);
+               g_hash_table_destroy(list);
+               free(locale);
+               return PMINFO_R_ENOENT;
+       }
        info->locale = locale;
        info->package = strdup(info->app_info->package);
+       if (!info->package) {
+               _LOGE("out of memory");
+               g_hash_table_destroy(list);
+               free(locale);
+               return PMINFO_R_ERROR;
+       }
 
        /* just free list only */
        g_hash_table_steal(list, (gconstpointer)appid);
@@ -1135,28 +1094,6 @@ static gpointer __copy_splashscreens(gconstpointer src, gpointer data)
        return splashscreen;
 }
 
-static gpointer __copy_components(gconstpointer src, gpointer data)
-{
-       component_x *tmp = (component_x *)src;
-       component_x *component;
-
-       component = (component_x *)calloc(1, sizeof(component_x));
-       if (component == NULL) {
-               LOGE("memory alloc failed");
-               *(int *)data = -1;
-               return NULL;
-       }
-
-       if (tmp->id)
-               component->id = strdup(tmp->id);
-       if (tmp->type)
-               component->type = strdup(tmp->type);
-       if (tmp->launch_mode)
-               component->launch_mode = strdup(tmp->launch_mode);
-
-       return component;
-}
-
 static int _appinfo_copy_appinfo(application_x **application, application_x *data)
 {
        application_x *app_info;
@@ -1300,15 +1237,6 @@ static int _appinfo_copy_appinfo(application_x **application, application_x *dat
                return PMINFO_R_ERROR;
        }
 
-       ret = 0;
-       app_info->components = g_list_copy_deep(data->components,
-                       __copy_components, &ret);
-       if (ret < 0) {
-               LOGE("memory alloc failed");
-               pkgmgrinfo_basic_free_application(app_info);
-               return PMINFO_R_ERROR;
-       }
-
        *application = app_info;
 
        return PMINFO_R_OK;
@@ -3777,25 +3705,3 @@ API int pkgmgrinfo_appinfo_foreach_remote_appcontrol_v2(
 
        return PMINFO_R_OK;
 }
-
-API int pkgmgrinfo_appinfo_foreach_component_info(pkgmgrinfo_appinfo_h handle,
-               pkgmgrinfo_component_info_list_cb callback, void *user_data)
-{
-       retvm_if(handle == NULL, PMINFO_R_EINVAL, "appinfo handle is NULL");
-       retvm_if(callback == NULL, PMINFO_R_EINVAL, "callback is NULL");
-       pkgmgr_appinfo_x *info = (pkgmgr_appinfo_x *)handle;
-       pkgmgr_compinfo_x compinfo;
-       GList *tmp;
-
-       if (info->app_info == NULL)
-               return PMINFO_R_ERROR;
-
-       compinfo.appid = info->app_info->appid;
-       for (tmp = info->app_info->components; tmp; tmp = tmp->next) {
-               compinfo.comp_info = (component_x *)tmp->data;
-               if (callback(&compinfo, user_data) < 0)
-                       break;
-       }
-
-       return PMINFO_R_OK;
-}