Fix static analysis issue 98/152498/6
authorJunghoon Park <jh9216.park@samsung.com>
Tue, 26 Sep 2017 08:28:46 +0000 (17:28 +0900)
committerJunghoon Park <jh9216.park@samsung.com>
Tue, 26 Sep 2017 10:45:05 +0000 (19:45 +0900)
- Fix 'Resource leak'
- Fix 'Dereference before null check'
- Fix 'Inferred misuse of enum'
- Fix 'Unused value'

Change-Id: I1d595acd440d06fc7b28781edfa88796949af5f6
Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
parser/widget_plugin_parser_pkgmgr_interface.c
src/widget_service.c
tool/widget_test.c

index 19ca969..1abe600 100644 (file)
@@ -36,8 +36,10 @@ API int PKGMGR_PARSER_PLUGIN_INSTALL(xmlDocPtr doc, const char *pkgid)
                return -1;
        }
 
-       if (widget_parser_db_insert_widget_class(pkgid, result))
+       if (widget_parser_db_insert_widget_class(pkgid, result)) {
+               g_list_free_full(result, _free_widget_class);
                return -1;
+       }
 
        g_list_free_full(result, _free_widget_class);
 
index 8d39b36..60331b5 100644 (file)
@@ -787,7 +787,7 @@ EAPI int widget_service_get_widget_list(widget_list_cb cb, void *data)
 
        ret = _get_widget_list(NULL, getuid(), &list);
        if (ret == WIDGET_ERROR_NONE && !_is_global(getuid()))
-               ret = _get_widget_list(NULL, GLOBALAPP_USER, &list);
+               _get_widget_list(NULL, GLOBALAPP_USER, &list);
 
        for (tmp = list; tmp; tmp = tmp->next) {
                item = (struct widget_list_item *)tmp->data;
@@ -829,7 +829,7 @@ EAPI int widget_service_get_widget_list_by_pkgid(const char *pkgid,
 
        ret = _get_widget_list(pkgid, getuid(), &list);
        if (ret == WIDGET_ERROR_NONE && !_is_global(getuid()))
-               ret = _get_widget_list(pkgid, GLOBALAPP_USER, &list);
+               _get_widget_list(pkgid, GLOBALAPP_USER, &list);
 
        for (tmp = list; tmp; tmp = tmp->next) {
                item = (struct widget_list_item *)tmp->data;
@@ -2098,17 +2098,21 @@ struct instance_cb {
 static void __instance_list_cb(const char *instance_id, void *user_data)
 {
        struct instance_cb *cb_data = (struct instance_cb *)user_data;
+
+       if (!cb_data)
+               return;
+
        cb_data->cnt++;
 
        _D("instance list: %s %s", cb_data->widget_id, instance_id);
-       if (cb_data && cb_data->cb)
+       if (cb_data->cb)
                cb_data->cb(cb_data->widget_id, instance_id, cb_data->data);
 }
 
 EAPI int widget_service_get_widget_instance_list(const char *widget_id, widget_instance_list_cb cb, void *data)
 {
        struct instance_cb cb_data;
-       int ret = WIDGET_ERROR_NONE;
+       int ret;
 
        cb_data.widget_id = widget_id;
        cb_data.cb = cb;
index d1db6a0..6cf1e50 100644 (file)
@@ -45,7 +45,7 @@ int get_widget_list(int argc, char **argv)
 
 int get_content(int argc, char **argv)
 {
-       bundle *b;
+       bundle *b = NULL;
        int ret;
        char *content_info = NULL;
 
@@ -54,6 +54,9 @@ int get_content(int argc, char **argv)
                bundle_get_str(b, AUL_K_WIDGET_CONTENT_INFO, &content_info);
 
        printf("ret:%d %s\n", ret, content_info);
+       if (b)
+               bundle_free(b);
+
        return 0;
 }