Coverity Fixes in BTAPI and BTHAL 66/183966/2
authorAnupam Roy <anupam.r@samsung.com>
Thu, 12 Jul 2018 15:34:03 +0000 (21:04 +0530)
committerAnupam Roy <anupam.r@samsung.com>
Thu, 12 Jul 2018 15:43:47 +0000 (15:43 +0000)
This patch fixes below Coverity issues:-

859630, 859619, 859613, 859641, 859629
859628, 859625, 859623, 859615, 859608
859603, 859588, 859643, 859632, 859626
859597, 859639, 859591, 859606

Change-Id: Ic81ffc7e6b98144af30f6e72f0a65e4f1eeff920
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
bt-api/bt-gatt-client.c
bt-api/bt-gatt-service.c
bt-api/bt-map-client.c
bt-oal/bluez_hal/src/bt-hal-a2dp-sink-dbus-handler.c
bt-oal/bluez_hal/src/bt-hal-av-dbus-handler.c
bt-oal/bluez_hal/src/bt-hal-avrcp-tg-dbus-handler.c

index 9daa2eb..c0f5620 100755 (executable)
@@ -2412,7 +2412,7 @@ BT_EXPORT_API int bluetooth_gatt_client_set_service_change_watcher(
                if (_bluetooth_gatt_check_service_change_watcher_address(address)
                                == TRUE) {
                        BT_INFO("The watcher is already set");
-                       return BLUETOOTH_ERROR_NONE;
+                       goto done;
                }
 
                if (service_monitor_list == NULL) {
@@ -2452,6 +2452,7 @@ BT_EXPORT_API int bluetooth_gatt_client_set_service_change_watcher(
                }
        }
 
+done:
        BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
        return result;
 }
index 93b28d0..115d1e6 100644 (file)
@@ -1922,7 +1922,7 @@ BT_EXPORT_API int bluetooth_gatt_add_new_characteristic(
                return BLUETOOTH_ERROR_INVALID_PARAM;
 
        node_info = __bt_gatt_create_method_node_info(
-                                       characteristics_introspection_xml);
+                       characteristics_introspection_xml);
        if (node_info == NULL)
                return BLUETOOTH_ERROR_INTERNAL;
 
@@ -1930,9 +1930,9 @@ BT_EXPORT_API int bluetooth_gatt_add_new_characteristic(
        BT_DBG("gatt characteristic path is [%s]", path);
 
        object_id = g_dbus_connection_register_object(g_conn, path,
-                                       node_info->interfaces[0],
-                                       &char_interface_vtable,
-                                       NULL, NULL, &error);
+                       node_info->interfaces[0],
+                       &char_interface_vtable,
+                       NULL, NULL, &error);
        g_dbus_node_info_unref(node_info);
 
        if (object_id == 0) {
@@ -1972,9 +1972,9 @@ BT_EXPORT_API int bluetooth_gatt_add_new_characteristic(
        inner_builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
 
        g_variant_builder_add(inner_builder, "{sv}", "UUID",
-                               g_variant_new("s", char_uuid));
+                       g_variant_new("s", char_uuid));
        g_variant_builder_add(inner_builder, "{sv}", "Service",
-                               g_variant_new("o", svc_path));
+                       g_variant_new("o", svc_path));
 
        builder2 = g_variant_builder_new(G_VARIANT_TYPE("as"));
 
@@ -1983,23 +1983,30 @@ BT_EXPORT_API int bluetooth_gatt_add_new_characteristic(
 
        flags_val = g_variant_new("as", builder2);
        g_variant_builder_add(inner_builder, "{sv}", "Flags",
-                               flags_val);
+                       flags_val);
 
        builder3 = g_variant_builder_new(G_VARIANT_TYPE("ao"));
 
        g_variant_builder_add(inner_builder, "{sv}", "Descriptors",
-                               g_variant_new("ao", builder3));
+                       g_variant_new("ao", builder3));
 
        g_variant_builder_add(builder, "{sa{sv}}",
-                               GATT_CHAR_INTERFACE,
-                               inner_builder);
+                       GATT_CHAR_INTERFACE,
+                       inner_builder);
 
        g_dbus_connection_emit_signal(g_conn, NULL, "/",
-                               "org.freedesktop.Dbus.ObjectManager",
-                               "InterfacesAdded",
-                               g_variant_new("(oa{sa{sv}})",
+                       "org.freedesktop.Dbus.ObjectManager",
+                       "InterfacesAdded",
+                       g_variant_new("(oa{sa{sv}})",
                                path, builder),
-                               &error);
+                       &error);
+
+       if (error) {
+               /* dBUS gives error cause */
+               BT_ERR("Could not Emit Signal: errCode[%x], message[%s]",
+                               error->code, error->message);
+               g_clear_error(&error);
+       }
 
        *char_path = g_strdup(path);
 
@@ -2062,7 +2069,7 @@ BT_EXPORT_API int bluetooth_gatt_set_characteristic_value(
                g_variant_builder_add(builder1, "y", char_value[i]);
 
        char_val = g_variant_new("ay", builder1);
-               g_variant_builder_add(inner_builder, "{sv}", "Value", char_val);
+       g_variant_builder_add(inner_builder, "{sv}", "Value", char_val);
 
        g_variant_builder_add(builder, "{sa{sv}}",
                        GATT_CHAR_INTERFACE,
@@ -2072,9 +2079,15 @@ BT_EXPORT_API int bluetooth_gatt_set_characteristic_value(
                        "org.freedesktop.Dbus.ObjectManager",
                        "InterfacesAdded",
                        g_variant_new("(oa{sa{sv}})",
-                       char_info->char_path, builder),
+                               char_info->char_path, builder),
                        &error);
 
+       if (error) {
+               /* dBUS gives error cause */
+               BT_ERR("Could not Emit Signal: errCode[%x], message[%s]",
+                               error->code, error->message);
+               g_clear_error(&error);
+       }
        g_variant_builder_unref(inner_builder);
        g_variant_builder_unref(builder);
        g_variant_builder_unref(builder1);
@@ -2255,15 +2268,22 @@ BT_EXPORT_API int bluetooth_gatt_set_descriptor_value(
        g_variant_builder_add(inner_builder, "{sv}", "Value", desc_val);
 
        g_variant_builder_add(builder, "{sa{sv}}",
-                               GATT_DESC_INTERFACE,
-                               inner_builder);
+                       GATT_DESC_INTERFACE,
+                       inner_builder);
 
        g_dbus_connection_emit_signal(g_conn, NULL, "/",
-                               "org.freedesktop.Dbus.ObjectManager",
-                               "InterfacesAdded",
-                               g_variant_new("(oa{sa{sv}})",
+                       "org.freedesktop.Dbus.ObjectManager",
+                       "InterfacesAdded",
+                       g_variant_new("(oa{sa{sv}})",
                                desc_info->desc_path, builder),
-                               &error);
+                       &error);
+
+       if (error != NULL) {
+               BT_ERR("D-Bus API failure: errCode[%x], \
+                               message[%s]",
+                               error->code, error->message);
+               g_clear_error(&error);
+       }
 
        g_variant_builder_unref(inner_builder);
        g_variant_builder_unref(builder);
@@ -2431,7 +2451,6 @@ BT_EXPORT_API int bluetooth_gatt_update_characteristic(
 
        update_value = g_variant_new("ay", inner_builder);
 
-       outer_builder = g_variant_builder_new(G_VARIANT_TYPE_ARRAY);
        g_variant_builder_add(outer_builder, "{sv}", "Value",
                                        update_value);
 
@@ -2810,7 +2829,8 @@ BT_EXPORT_API int bluetooth_gatt_server_init(int *instance_id, gatt_server_cb_fu
        if (ret != BLUETOOTH_ERROR_NONE &&
                        ret != BLUETOOTH_ERROR_ALREADY_INITIALIZED) {
                BT_ERR("Fail to init the event handler");
-               return ret;
+               BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
+               goto done;
        }
 
        ret = _bt_send_request(BT_BLUEZ_SERVICE, BT_GATT_SERVER_REGISTER,
@@ -2825,6 +2845,7 @@ BT_EXPORT_API int bluetooth_gatt_server_init(int *instance_id, gatt_server_cb_fu
                BT_INFO("GATT Server Registered successfully: App Instance ID [%d]", *instance_id);
        }
 
+done:
        BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
 
        BT_INFO("GATT Server instance ID obtained [%d]", *instance_id);
@@ -2918,6 +2939,7 @@ BT_EXPORT_API int bluetooth_gatt_server_add_new_characteristic(const char *char_
                BT_DBG("GATT Server Add characteristic success result [%d] char chandle [%d]", result, *char_handle);
        }
 
+       BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
        return result;
 }
 
index 23e546f..33e08a1 100644 (file)
@@ -134,7 +134,6 @@ BT_EXPORT_API int bluetooth_map_client_set_folder(
 
        if (result != BLUETOOTH_ERROR_NONE) {
                BT_ERR("bluetooth_map_client_set_folder failed");
-               return BLUETOOTH_ERROR_INTERNAL;
        }
 
        BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
@@ -283,7 +282,6 @@ BT_EXPORT_API int bluetooth_map_client_update_inbox(bt_map_client_session_info_s
 
        if (result != BLUETOOTH_ERROR_NONE) {
                BT_ERR("bluetooth_map_client_update_inbox failed");
-               return BLUETOOTH_ERROR_INTERNAL;
        }
 
        BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
index 4f08b1b..a507a66 100644 (file)
@@ -127,6 +127,7 @@ bt_status_t _bt_hal_dbus_handler_a2dp_sink_connect(bt_bdaddr_t *bd_addr)
 
        if (ret != BT_HAL_ERROR_NONE) {
                ERR("_bt_hal_connect_profile(A2DP source) Error");
+               g_free(address);
                return BT_STATUS_FAIL;
        }
 
index 91e41e5..847c55e 100644 (file)
@@ -128,6 +128,7 @@ bt_status_t _bt_hal_dbus_handler_av_connect(bt_bdaddr_t *bd_addr)
 
        if (ret != BT_HAL_ERROR_NONE) {
                ERR("_bt_hal_connect_profile(A2DP) Error");
+               g_free(address);
                return BT_STATUS_FAIL;
        }
        return BT_STATUS_SUCCESS;
index 01a044b..de35ec1 100644 (file)
@@ -525,6 +525,7 @@ bt_status_t _bt_hal_dbus_handler_avrcp_tg_connect(bt_bdaddr_t *bd_addr)
                        __bt_hal_avrcp_tg_connect_cb, address);
        if (ret != BT_HAL_ERROR_NONE) {
                ERR("_bt_hal_connect_profile(AVRCP Controller) Error");
+               g_free(address);
                return BT_STATUS_FAIL;
        }