Apply tizen 3.0 based product patchsets
[platform/core/connectivity/bluetooth-frwk.git] / bt-api / bt-gatt-client.c
index f9dd7dc..ba8f797 100644 (file)
@@ -229,31 +229,35 @@ BT_EXPORT_API int bluetooth_gatt_get_service_property(const char *service_handle
 
                } else if (!g_strcmp0(key, "Includes")) {
                        g_variant_get(value, "ao", &char_iter);
-                       gp_array = g_ptr_array_new();
-                       while (g_variant_iter_loop(char_iter, "&o", &char_handle))
-                               g_ptr_array_add(gp_array, (gpointer)char_handle);
-
-                       if (gp_array->len != 0) {
-                               service->include_handles.count = gp_array->len;
-                               service->include_handles.handle =
-                                               __get_string_array_from_gptr_array(gp_array);
+                       if (char_iter != NULL) {
+                               gp_array = g_ptr_array_new();
+                               while (g_variant_iter_loop(char_iter, "&o", &char_handle))
+                                       g_ptr_array_add(gp_array, (gpointer)char_handle);
+
+                               if (gp_array->len != 0) {
+                                       service->include_handles.count = gp_array->len;
+                                       service->include_handles.handle =
+                                                       __get_string_array_from_gptr_array(gp_array);
+                               }
+                               g_ptr_array_free(gp_array, TRUE);
+                               g_variant_iter_free(char_iter);
                        }
-                       g_ptr_array_free(gp_array, TRUE);
-                       g_variant_iter_free(char_iter);
                } else if (!g_strcmp0(key, "Characteristics")) {
                        g_variant_get(value, "ao", &char_iter);
-                       gp_array = g_ptr_array_new();
-                       while (g_variant_iter_loop(char_iter, "&o", &char_handle))
-                               g_ptr_array_add(gp_array, (gpointer)char_handle);
-
-                       if (gp_array->len != 0) {
-                               service->char_handle.count = gp_array->len;
-                               service->char_handle.handle =
-                                               __get_string_array_from_gptr_array(gp_array);
+                       if (char_iter != NULL) {
+                               gp_array = g_ptr_array_new();
+                               while (g_variant_iter_loop(char_iter, "&o", &char_handle))
+                                       g_ptr_array_add(gp_array, (gpointer)char_handle);
+
+                               if (gp_array->len != 0) {
+                                       service->char_handle.count = gp_array->len;
+                                       service->char_handle.handle =
+                                                       __get_string_array_from_gptr_array(gp_array);
+                               }
+                               g_ptr_array_free(gp_array, TRUE);
+                               g_variant_iter_free(char_iter);
                        }
                        BT_DBG("Characteristics count : %d", service->char_handle.count);
-                       g_ptr_array_free(gp_array, TRUE);
-                       g_variant_iter_free(char_iter);
                }
        }