Fix SVace warnings
authorJiwan Kim <ji-wan.kim@samsung.com>
Fri, 10 Feb 2017 07:46:21 +0000 (16:46 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Thu, 11 May 2017 09:10:26 +0000 (18:10 +0900)
Change-Id: I3c031601f7bb2de606d17fd7922766752d00385d
Signed-off-by: Jiwan Kim <ji-wan.kim@samsung.com>
zigbee-daemon/zigbee-interface/src/zigbee_service_dbus_interface.c
zigbee-daemon/zigbee-interface/src/zigbee_service_dbus_interface_zcl_global_control.c
zigbee-daemon/zigbee-interface/src/zigbee_service_dbus_interface_zdo_bind.c
zigbee-daemon/zigbee-interface/src/zigbee_service_dbus_interface_zdo_dev_control.c
zigbee-daemon/zigbee-lib/src/zblib_request.c
zigbee-daemon/zigbee-lib/src/zblib_service.c

index b40748c..b49633f 100644 (file)
@@ -264,6 +264,8 @@ static void zigbee_on_name_lost(GDBusConnection *connection,
 
        Z_LOGW("'%s' - [Name Lost]", name);
 
+       zblib_check_null_ret("custom_data", custom_data);
+
        NOT_USED(connection);
 
        /* Bus name is 'lost' */
@@ -280,6 +282,8 @@ static void zigbee_on_name_acquired(GDBusConnection *connection,
 
        NOT_USED(connection);
 
+       zblib_check_null_ret("custom_data", custom_data);
+
        /* Bus name is 'acquired' */
        custom_data->name_acquired = TRUE;
 
@@ -446,7 +450,8 @@ gboolean zigbee_service_dbus_interface_init(ZigBeeService *service)
        }
 
        /* HASH table for maintaining 'objects' list */
-       interface_data->objects = g_hash_table_new(g_str_hash, g_str_equal);
+       interface_data->objects = g_hash_table_new_full(g_str_hash, g_str_equal,
+                       g_free, NULL);
 
        /*
         * Acquire "org.tizen.zigbee" named bus on D-BUS SYSTEM bus.
@@ -507,8 +512,8 @@ void zigbee_service_dbus_interface_deinit(ZigBeeService *service)
        }
 
        interface_data = (ZigbeeCustomData_t *)zblib_service_interface_ref_user_data(service_interface);
-       if (NULL == service_interface) {
-               Z_LOGE("D-BUS service interface not found!");
+       if (NULL == interface_data) {
+               Z_LOGE("D-BUS interface data not found!");
 
                goto EXIT;
        }
index d90560c..c8f1fe2 100644 (file)
@@ -1470,13 +1470,6 @@ void zigbee_service_dbus_interface_zcl_global_control_notification(ZigBeeService
                }
                v_index = g_variant_builder_end (index_builder);
                g_variant_builder_unref(index_builder);
-               if (NULL == index_builder) {
-                       Z_LOGE("Failed to create variant!");
-                       g_variant_unref(v_status);
-                       g_variant_unref(v_attrs);
-                       g_variant_unref(v_indicator);
-                       break;
-               }
 
                Z_LOGD("Write attribute structured resp");
                zigbee_zcl_global_control_emit_write_attribute_structured_rsp(
@@ -1603,12 +1596,6 @@ void zigbee_service_dbus_interface_zcl_global_control_notification(ZigBeeService
                }
                v_values = g_variant_builder_end (values_builder);
                g_variant_builder_unref(values_builder);
-               if (NULL == values_builder) {
-                       Z_LOGE("Failed to create variant!");
-                       g_variant_unref(v_data_type);
-                       g_variant_unref(v_attrs);
-                       break;
-               }
 
                Z_LOGD("Report attributes handler resp");
                zigbee_zcl_global_control_emit_report_attr_handler_rsp(
index 9f56332..ffdabcc 100644 (file)
@@ -93,6 +93,7 @@ static gboolean on_zdo_bind_bind_req(ZigbeeZdo_bind *zdo_bind_object,
 
        GVariantIter *iter = NULL;
        gint i = 0;
+       guchar value = 0;
 
        gboolean ret;
 
@@ -101,18 +102,18 @@ static gboolean on_zdo_bind_bind_req(ZigbeeZdo_bind *zdo_bind_object,
        /* Update request structure */
        req.node_id = node_id;
        g_variant_get(src_addr, "a(y)", &iter);
-       while (g_variant_iter_loop(iter, "(y)", req.src_addr[i])) {
+       while (i < ZIGBEE_EUI64_SIZE && g_variant_iter_loop(iter, "(y)", &value)) {
+               req.src_addr[i] = value;
                i++;
-               if (i >= ZIGBEE_ZDO_BIND_ADDRESS_MAX_LEN + 1)
-                       break;
        }
        req.src_ep = src_ep;
        req.cluster_id = cluster_id;
+
+       i = 0;
        g_variant_get(dst_addr, "a(y)", &iter);
-       while (g_variant_iter_loop(iter, "(y)", req.dst_addr[i])) {
+       while (i < ZIGBEE_EUI64_SIZE && g_variant_iter_loop(iter, "(y)", &value)) {
+               req.dst_addr[i] = value;
                i++;
-               if (i >= ZIGBEE_ZDO_BIND_ADDRESS_MAX_LEN + 1)
-                       break;
        }
        req.bind_type = bind_type;
        req.group_addr = group_addr;
@@ -201,6 +202,7 @@ static gboolean on_zdo_bind_unbind_req(ZigbeeZdo_bind *zdo_bind_object,
 
        GVariantIter *iter = NULL;
        gint i = 0;
+       guchar value = 0;
 
        gboolean ret;
 
@@ -209,18 +211,18 @@ static gboolean on_zdo_bind_unbind_req(ZigbeeZdo_bind *zdo_bind_object,
        /* Update request structure */
        req.node_id = node_id;
        g_variant_get(src_addr, "a(y)", &iter);
-       while (g_variant_iter_loop(iter, "(y)", req.src_addr[i])) {
+       while (i < ZIGBEE_EUI64_SIZE && g_variant_iter_loop(iter, "(y)", &value)) {
+               req.src_addr[i] = value;
                i++;
-               if (i >= ZIGBEE_ZDO_BIND_ADDRESS_MAX_LEN + 1)
-                       break;
        }
        req.src_ep = src_ep;
        req.cluster_id = cluster_id;
+
+       i = 0;
        g_variant_get(dst_addr, "a(y)", &iter);
-       while (g_variant_iter_loop(iter, "(y)", req.dst_addr[i])) {
+       while (i < ZIGBEE_EUI64_SIZE && g_variant_iter_loop(iter, "(y)", &value)) {
+               req.dst_addr[i] = value;
                i++;
-               if (i >= ZIGBEE_ZDO_BIND_ADDRESS_MAX_LEN + 1)
-                       break;
        }
        req.bind_type = bind_type;
        req.group_addr = group_addr;
index a18b6a9..0388c28 100644 (file)
@@ -171,11 +171,11 @@ static void on_zdodev_control_matched_descriptor_req_resp(ZigBeeServiceInterface
 
 static gboolean on_zdodev_control_matched_descriptor_req(ZigbeeZdo_dev_control *zdodev_control_object,
        GDBusMethodInvocation *invocation,
-       gshort node_id,
-       gshort profile_id,
-       gchar num_in_cl,
+       gushort node_id,
+       gushort profile_id,
+       guchar num_in_cl,
        GVariant *in_cl,
-       gchar num_out_cl,
+       guchar num_out_cl,
        GVariant *out_cl,
        gpointer user_data)
 {
index a43f636..5410353 100644 (file)
@@ -126,7 +126,7 @@ static ZigBeeRequest *__zblib_request_ref_request_by_request_id(ZigBeeService *s
 
        /* Look-up requets_id in request hash table */
        request = (ZigBeeRequest *)g_hash_table_lookup(request_table, (gconstpointer)request_id);
-       if (NULL == request_table) {
+       if (NULL == request) {
                Z_LOGE("No request available for request_id: [%d]", request_id);
                return NULL;
        }
index 6d64f8c..681dc31 100644 (file)
@@ -114,17 +114,35 @@ static gboolean __zblib_service_init_plugin(ZigBeePlugin *plugin)
 static gboolean __zblib_service_unload_plugin(ZigBeePlugin *plugin)
 {
        const ZblibPluginDescriptor_t *descriptor = zblib_plugin_get_descriptor(plugin);
-       char *plugin_name = zblib_plugin_get_plugin_name(plugin);
+       char *plugin_name = NULL;
 
        zblib_check_null_ret_error("descriptor", descriptor, FALSE);
        zblib_check_null_ret_error("descriptor->unload", descriptor->unload, FALSE);
 
+       plugin_name = zblib_plugin_get_plugin_name(plugin);
+
        descriptor->unload(plugin);
        Z_LOGI("plugin(%s) unloaded!", plugin_name);
 
+       g_free(plugin_name);
+
        return TRUE;
 }
 
+static void __zblib_service_remove_request_table_iter(gpointer key,
+       gpointer value, gpointer user_data)
+{
+       ZigBeeServiceInterface *service_interface = (ZigBeeServiceInterface *)user_data;
+       gint request_id = (gint)key;
+
+       NOT_USED(value);
+
+       zblib_check_null_ret("service_interface", service_interface);
+
+       Z_LOGD("Removing request id [%d]", request_id);
+       zblib_request_free(service_interface, request_id);
+}
+
 ZigBeeService *zblib_service_new()
 {
        ZigBeeService *service;
@@ -150,6 +168,31 @@ void zblib_service_free(ZigBeeService *service)
 {
        zblib_check_null_ret("service", service);
 
+       if (service->request_table) {
+               GSList *interface_objs = NULL;
+               ZigBeeServiceInterface *service_interface = NULL;
+
+               interface_objs = service->interface_objs;
+               if (NULL == interface_objs) {
+                       Z_LOGE("interface_objs is NULL");
+               } else {
+                       while (interface_objs) {
+                               service_interface = (ZigBeeServiceInterface *)interface_objs->data;
+
+                               /* Remove left request */
+                               g_hash_table_foreach(service->request_table,
+                                               __zblib_service_remove_request_table_iter,
+                                               service_interface);
+
+                               /* Move to next service interface */
+                               interface_objs = g_slist_next(interface_objs);
+                       }
+                       g_hash_table_remove_all(service->request_table);
+                       g_hash_table_destroy(service->request_table);
+                       service->request_table = NULL;
+               }
+       }
+
        /* Free plug-ins */
        if (service->plugins) {
                g_slist_free(service->plugins);
@@ -208,6 +251,9 @@ gboolean zblib_service_remove_plugin(ZigBeeService *service, ZigBeePlugin *plugi
        /* Specific vendor plug-in would be removed */
        service->plugins = g_slist_remove(service->plugins, plugin);
 
+       /* Deinitialize plugin */
+       zblib_plugin_free(plugin);
+
        return TRUE;
 }
 
@@ -374,6 +420,7 @@ ZigBeeServiceInterface *zblib_service_ref_service_interface(ZigBeeService *servi
                        service_interface = tmp_service_interface;
                        break;
                }
+               g_free(object_name);
 
                list = g_slist_next(list);
        }