Fix issues reported by a static analyzer 63/127363/3 accepted/tizen/unified/20170428.032840 submit/tizen/20170427.090631
authorJiung Yu <jiung.yu@samsung.com>
Thu, 27 Apr 2017 05:43:18 +0000 (14:43 +0900)
committerJiung Yu <jiung.yu@samsung.com>
Thu, 27 Apr 2017 08:50:47 +0000 (17:50 +0900)
Change-Id: If1a28a629953a8fbbc0b5e5f00f76d1a3f31e657
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
packaging/capi-network-asp.spec
src/asp-client.c
test/asp-test.c

index f2aeec7da5a5d10f0e79689d206157e636ffd71a..e74b52f2b499816725bd7404c811f4716bcffaa7 100755 (executable)
@@ -2,7 +2,7 @@
 
 Name:       capi-network-asp
 Summary:    An Application Service Platform(ASP) libraries in Native API
-Version:    0.0.9
+Version:    0.0.10
 Release:    1
 Group:      Network & Connectivity/API
 License:    Apache-2.0
index 135b5dd05fe83b2bd6921cfd427550a16c099308..d96852c0473f8bdf87a17c185af06663bda75323 100644 (file)
@@ -175,12 +175,11 @@ void asp_process_seek_search_result(GDBusConnection *connection,
        GVariantIter *iter = NULL;
        GVariant *var = NULL;
        const char *key = NULL;
-       const char *str = NULL;
        unsigned int search_id = 0;
        const char *service_mac = NULL;
        unsigned int advertisement_id = 0;
        unsigned int config_method = 0;
-       char *instance_name = NULL;
+       const char *instance_name = NULL;
        char *service_info = NULL;
        unsigned char status = 0;
        int error_code = ASP_ERROR_NONE;
@@ -200,18 +199,17 @@ void asp_process_seek_search_result(GDBusConnection *connection,
                if (!g_strcmp0(key, "search_id")) {
                        g_variant_get(var, "u", &search_id);
                } else if (!g_strcmp0(key, "service_mac")) {
-                       g_variant_get(var, "&s", &str);
-                       service_mac = g_strndup(str, MACSTR_LEN);
+                       g_variant_get(var, "&s", &service_mac);
                } else if (!g_strcmp0(key, "adv_id")) {
                        g_variant_get(var, "u", &advertisement_id);
                } else if (!g_strcmp0(key, "config_method")) {
                        g_variant_get(var, "u", &config_method);
                } else if (!g_strcmp0(key, "instance_name")) {
-                       g_variant_get(var, "&s", &str);
-                       instance_name = g_strdup(str);
+                       g_variant_get(var, "&s", &instance_name);
                } else if (!g_strcmp0(key, "service_info")) {
                        service_info = __asp_create_service_info_from_g_variant(var);
-                       ASP_LOGD("Service Info: %s", service_info);
+                       if (service_info)
+                               ASP_LOGD("Service Info: %s", service_info);
                } else if (!g_strcmp0(key, "service_status")) {
                        g_variant_get(var, "y", &status);
                }  else {
@@ -221,7 +219,7 @@ void asp_process_seek_search_result(GDBusConnection *connection,
 
        //TODO :client->search_result_cb
        g_variant_iter_free(iter);
-
+       g_free(service_info);
        __ASP_LOG_FUNC_END__;
        return;
 }
@@ -254,8 +252,8 @@ void asp_process_advert_status_changed(GDBusConnection *connection,
        return;
 }
 
-int __handle_session_request(unsigned int adv_id, char *session_mac,
-               unsigned int session_id, char *session_info)
+int __handle_session_request(unsigned int adv_id, const char *session_mac,
+               unsigned int session_id, const char *session_info)
 {
        __ASP_LOG_FUNC_START__;
        asp_client_advert_s *service = NULL;
@@ -297,8 +295,7 @@ int __handle_session_request(unsigned int adv_id, char *session_mac,
        }
 
        if (session == NULL) {
-               //TODO :asp_get_session
-               //res = asp_get_session(session_mac, session_id, (void **)&session);
+               res = asp_session_get_handle((char *)session_mac, session_id, (void **)&session);
                if (res < 0) {
                        ASP_LOGE("asp_get_session failed");
                        __ASP_LOG_FUNC_END__;
@@ -310,8 +307,7 @@ int __handle_session_request(unsigned int adv_id, char *session_mac,
                asp_sessions = g_list_prepend(asp_sessions, session);
        }
 
-       //TODO :asp_confirm_session
-       //asp_confirm_session(session, TRUE, NULL);
+       asp_session_confirm(session, TRUE, NULL);
        ASP_LOGD("asp_confirm_session");
        __ASP_LOG_FUNC_END__;
                return -1;
@@ -327,14 +323,13 @@ void asp_process_session_request(GDBusConnection *connection,
        GVariantIter *iter = NULL;
        GVariant *var = NULL;
        const char *key = NULL;
-       const char *str = NULL;
        unsigned int adv_id = 0;
-       char *session_mac = NULL;
-       char * device_name = NULL;
+       const char *session_mac = NULL;
+       const char * device_name = NULL;
        unsigned int session_id = 0;
-       char *session_info = NULL;
+       const char *session_info = NULL;
        gboolean get_network_config_pin = FALSE;
-       char *network_config_pin = NULL;
+       const char *network_config_pin = NULL;
        int error_code = ASP_ERROR_NONE;
 
        if (!client->session_request_cb) {
@@ -355,19 +350,15 @@ void asp_process_session_request(GDBusConnection *connection,
                } else if (!g_strcmp0(key, "session_id")) {
                        g_variant_get(var, "u", &session_id);
                }  else if (!g_strcmp0(key, "session_mac")) {
-                       g_variant_get(var, "&s", &str);
-                       session_mac = g_strndup(str, MACSTR_LEN);
+                       g_variant_get(var, "&s", &session_mac);
                } else if (!g_strcmp0(key, "device_name")) {
-                       g_variant_get(var, "&s", &str);
-                       device_name = g_strdup(str);
+                       g_variant_get(var, "&s", &device_name);
                } else if (!g_strcmp0(key, "session_info")) {
-                       g_variant_get(var, "&s", &str);
-                       session_info = g_strdup(str);
+                       g_variant_get(var, "&s", &session_info);
                } else if (!g_strcmp0(key, "get_pin")) {
                        g_variant_get(var, "b", &get_network_config_pin);
                } else if (!g_strcmp0(key, "pin")) {
-                       g_variant_get(var, "&s", &str);
-                       network_config_pin = g_strdup(str);
+                       g_variant_get(var, "&s", &network_config_pin);
                }  else {
                        ;/* Do Nothing */
                }
@@ -376,12 +367,8 @@ void asp_process_session_request(GDBusConnection *connection,
        if (__handle_session_request(adv_id, session_mac,
                        session_id, session_info) == 0) {
                //TODO :client->session_request_cb
-       } else {
-               g_free(session_mac);
-               g_free(session_info);
-               g_free(device_name);
-               g_free(network_config_pin);
        }
+
        g_variant_iter_free(iter);
 
        __ASP_LOG_FUNC_END__;
@@ -398,7 +385,6 @@ void asp_process_session_config_request(GDBusConnection *connection,
        GVariantIter *iter = NULL;
        GVariant *var = NULL;
        const char *key = NULL;
-       const char *str = NULL;
        unsigned int session_id = 0;
        gboolean get_pin = false;
        const char *config_pin = NULL;
@@ -421,8 +407,7 @@ void asp_process_session_config_request(GDBusConnection *connection,
                } else if (!g_strcmp0(key, "get_pin")) {
                        g_variant_get(var, "b", &get_pin);
                } else if (!g_strcmp0(key, "pin")) {
-                       g_variant_get(var, "&s", &str);
-                       config_pin = g_strdup(str);
+                       g_variant_get(var, "&s", &config_pin);
                } else {
                        ;/* Do Nothing */
                }
@@ -445,11 +430,10 @@ void asp_process_session_connect_status(GDBusConnection *connection,
        GVariantIter *iter = NULL;
        GVariant *var = NULL;
        const char *key = NULL;
-       const char *str = NULL;
        const char *session_mac = NULL;
        unsigned int session_id = 0;
        int status = 0;
-       char *deferred_resp = NULL;
+       const char *deferred_resp = NULL;
        int error_code = ASP_ERROR_NONE;
 
        if (!client->session_connect_status_cb) {
@@ -467,13 +451,11 @@ void asp_process_session_connect_status(GDBusConnection *connection,
                if (!g_strcmp0(key, "session_id")) {
                        g_variant_get(var, "u", &session_id);
                }  else if (!g_strcmp0(key, "session_mac")) {
-                       g_variant_get(var, "&s", &str);
-                       session_mac = g_strndup(str, MACSTR_LEN);
+                       g_variant_get(var, "&s", &session_mac);
                } else if (!g_strcmp0(key, "status")) {
                        g_variant_get(var, "i", &status);
                } else if (!g_strcmp0(key, "deferred_resp")) {
-                       g_variant_get(var, "&s", &str);
-                       deferred_resp = g_strdup(str);
+                       g_variant_get(var, "&s", &deferred_resp);
                }  else {
                        ;/* Do Nothing */
                }
@@ -496,12 +478,11 @@ void asp_process_session_status(GDBusConnection *connection,
        GVariantIter *iter = NULL;
        GVariant *var = NULL;
        const char *key = NULL;
-       const char *str = NULL;
        const char *session_mac = NULL;
        unsigned int session_id = 0;
        int state = 0;
        int status = 0;
-       char *requested_info = NULL;
+       const char *requested_info = NULL;
        int error_code = ASP_ERROR_NONE;
 
        if (!client->session_status_cb) {
@@ -519,15 +500,13 @@ void asp_process_session_status(GDBusConnection *connection,
                if (!g_strcmp0(key, "session_id")) {
                        g_variant_get(var, "u", &session_id);
                }  else if (!g_strcmp0(key, "session_mac")) {
-                       g_variant_get(var, "&s", &str);
-                       session_mac = g_strndup(str, MACSTR_LEN);
+                       g_variant_get(var, "&s", &session_mac);
                } else if (!g_strcmp0(key, "state")) {
                        g_variant_get(var, "i", &state);
                } else if (!g_strcmp0(key, "status")) {
                        g_variant_get(var, "i", &status);
                }  else if (!g_strcmp0(key, "requested_info")) {
-                       g_variant_get(var, "&s", &str);
-                       requested_info = g_strdup(str);
+                       g_variant_get(var, "&s", &requested_info);
                }  else {
                        ;/* Do Nothing */
                }
@@ -549,7 +528,6 @@ void asp_process_session_port_status(GDBusConnection *connection,
        GVariantIter *iter = NULL;
        GVariant *var = NULL;
        const char *key = NULL;
-       const char *str = NULL;
        const char *session_mac = NULL;
        const char *ip_address = NULL;
        unsigned int session_id = 0;
@@ -573,8 +551,7 @@ void asp_process_session_port_status(GDBusConnection *connection,
                if (!g_strcmp0(key, "session_id")) {
                        g_variant_get(var, "u", &session_id);
                }  else if (!g_strcmp0(key, "session_mac")) {
-                       g_variant_get(var, "&s", &str);
-                       session_mac = g_strndup(str, MACSTR_LEN);
+                       g_variant_get(var, "&s", &session_mac);
                } else if (!g_strcmp0(key, "ip_address")) {
                        g_variant_get(var, "&s", &ip_address);
                }  else if (!g_strcmp0(key, "port")) {
@@ -1434,7 +1411,7 @@ int asp_advert_get_info(asp_advert_service_h adv_service, const char *key,
                return ASP_ERROR_NONE;
        }
 
-       *value = g_strdup(ret_val);
+       *value = ret_val;
        *length = strlen(ret_val);
 
        ASP_LOGD("asp_advert_get_info() SUCCESS");
@@ -2516,12 +2493,7 @@ int asp_session_get_mac(asp_session_h session, char **session_mac)
                return ASP_ERROR_SESSION_NOT_FOUND;
        }
 
-       *session_mac = g_strndup(service->session_mac, MACSTR_LEN - 1);
-       if (*session_mac == NULL) {
-               ASP_LOGE("g_strndup failed");
-               __ASP_LOG_FUNC_END__;
-               return ASP_ERROR_OPERATION_FAILED;
-       }
+       *session_mac = service->session_mac;
 
        ASP_LOGD("asp_session_get_mac() SUCCESS");
 
@@ -2637,7 +2609,7 @@ int asp_session_get_info(asp_session_h session, char **service_info)
        }
 
        if (service->session_information)
-               *service_info = g_strdup(service->session_information);
+               *service_info = service->session_information;
 
        ASP_LOGD("asp_session_get_info() SUCCESS");
 
@@ -2886,7 +2858,7 @@ int asp_session_connect(asp_session_h session)
 
        g_variant_get(reply, "(iu&s)", &ret, &(service->session_id), &str);
        if (str != NULL)
-               memcpy(service->session_mac, str, strlen(str));
+               g_strlcpy(service->session_mac, str, MACSTR_LEN);
        g_variant_unref(reply);
 
        ASP_LOGD("%s() return : [%d]", __func__, ret);
index 79dcde9e904a0a1ff101f49952888d8cc5988dcc..e0f5cfb9ecfb8658fe258429f52f690d6019c4f0 100644 (file)
@@ -598,7 +598,12 @@ void test_full_menu()
 
 void test_quit()
 {
-       struct appdata *ad = get_appdata(ad);
+       struct appdata *ad = get_appdata();
+
+       if (!ad) {
+               printf("appdata was not initialized\n");
+               return;
+       }
 
        printf("Bye\n");
        g_main_loop_quit(ad->main_loop);
@@ -608,9 +613,14 @@ void test_quit()
 
 void test_init()
 {
-       struct appdata *ad = get_appdata(ad);
+       struct appdata *ad = get_appdata();
        int ret = 0;
 
+       if (!ad) {
+               printf("appdata was not initialized\n");
+               return;
+       }
+
        ret = init_asp_client(ad);
        printf("init_asp_client() result=[%d]\n", ret);
 
@@ -627,9 +637,14 @@ void test_deinit()
 
 void test_asp_seek_set_search_result_cb()
 {
-       struct appdata *ad = get_appdata(ad);
+       struct appdata *ad = get_appdata();
        int ret = 0;
 
+       if (!ad) {
+               printf("appdata was not initialized\n");
+               return;
+       }
+
        ret = asp_seek_set_search_result_cb(seek_search_result_cb, ad);
        printf("asp_seek_set_search_result_cb() result=[%d]\n", ret);
 
@@ -648,9 +663,14 @@ void test_asp_seek_unset_search_result_cb()
 
 void test_asp_advert_set_status_changed_cb()
 {
-       struct appdata *ad = get_appdata(ad);
+       struct appdata *ad = get_appdata();
        int ret = 0;
 
+       if (!ad) {
+               printf("appdata was not initialized\n");
+               return;
+       }
+
        ret = asp_advert_set_status_changed_cb(advert_status_changed_cb, ad);
        printf("asp_advert_unset_status_changed_cb() result=[%d]\n", ret);
 
@@ -669,9 +689,14 @@ void test_asp_advert_unset_status_changed_cb()
 
 void test_asp_session_set_request_cb()
 {
-       struct appdata *ad = get_appdata(ad);
+       struct appdata *ad = get_appdata();
        int ret = 0;
 
+       if (!ad) {
+               printf("appdata was not initialized\n");
+               return;
+       }
+
        ret = asp_session_set_request_cb(session_request_cb, ad);
        printf("asp_session_set_request_cb() result=[%d]\n", ret);
 
@@ -690,9 +715,14 @@ void test_asp_session_unset_request_cb()
 
 void test_asp_session_set_config_request_cb()
 {
-       struct appdata *ad = get_appdata(ad);
+       struct appdata *ad = get_appdata();
        int ret = 0;
 
+       if (!ad) {
+               printf("appdata was not initialized\n");
+               return;
+       }
+
        ret = asp_session_set_config_request_cb(session_config_request_cb, ad);
        printf("asp_session_set_config_request_cb() result=[%d]\n", ret);
 
@@ -711,9 +741,14 @@ void test_asp_session_unset_config_request_cb()
 
 void test_asp_session_set_connect_status_cb()
 {
-       struct appdata *ad = get_appdata(ad);
+       struct appdata *ad = get_appdata();
        int ret = 0;
 
+       if (!ad) {
+               printf("appdata was not initialized\n");
+               return;
+       }
+
        ret = asp_session_set_connect_status_cb(session_connect_status_cb, ad);
        printf("asp_session_set_connect_status_cb() result=[%d]\n", ret);
 
@@ -732,9 +767,14 @@ void test_asp_session_unset_connect_status_cb()
 
 void test_asp_session_set_status_cb()
 {
-       struct appdata *ad = get_appdata(ad);
+       struct appdata *ad = get_appdata();
        int ret = 0;
 
+       if (!ad) {
+               printf("appdata was not initialized\n");
+               return;
+       }
+
        ret = asp_session_set_status_cb(session_status_cb, ad);
        printf("asp_session_set_status_cb() result=[%d]\n", ret);
 
@@ -753,9 +793,14 @@ void test_asp_session_unset_status_cb()
 
 void test_asp_session_set_port_status_cb()
 {
-       struct appdata *ad = get_appdata(ad);
+       struct appdata *ad = get_appdata();
        int ret = 0;
 
+       if (!ad) {
+               printf("appdata was not initialized\n");
+               return;
+       }
+
        ret = asp_session_set_port_status_cb(session_port_status_cb, ad);
        printf("asp_session_set_port_status_cb() result=[%d]\n", ret);
 
@@ -1766,6 +1811,10 @@ void process_input(const char *input, gpointer user_data)
                cmd = CMD_INVALID;
 
        printf("cmd=[%d]\n", cmd);
+       if (cmd > CMD_SESSION_RELEASE_PORT || cmd < CMD_QUIT) {
+               printf("Invalid CMD\n");
+               return;
+       }
        g_menu_func[cmd].func();
 }
 
@@ -1807,6 +1856,7 @@ int main(int argc, char **argv)
 
        ad = (struct appdata*)malloc(sizeof(struct appdata));
 
+
        set_appdata(ad);
        ad->main_loop = main_loop;