Fix wrong memory references and leaks
[platform/core/connectivity/bluetooth-frwk.git] / bt-api / bt-gatt-client.c
index 52ea99e..ca6709d 100644 (file)
@@ -2609,21 +2609,17 @@ BT_EXPORT_API int bluetooth_gatt_client_write_characteristic_value_by_type(
                        mtu =  g_array_index(out_param, int, 0);
 
                        if (result != BLUETOOTH_ERROR_NONE) {
-                                       BT_ERR("Fail to get Write FD. result %d", result);
-                                       BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
-                                       return result;
+                               BT_ERR("Fail to get Write FD. result %d", result);
+                               BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
+                               return result;
                        } else if (NULL == out_fd_list) {
                                BT_ERR("out_fd_list is NULL");
+                               BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
                                return BLUETOOTH_ERROR_INTERNAL;
                        } else {
                                int *fd_list_array;
                                int len = 0;
 
-                               if (!out_fd_list) {
-                                       BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
-                                       return BLUETOOTH_ERROR_INTERNAL;
-                               }
-
                                fd_list_array = g_unix_fd_list_steal_fds(out_fd_list, &len);
                                fd = fd_list_array[0];