From: saerome kim Date: Sat, 4 Feb 2017 07:15:58 +0000 (+0900) Subject: Change 'ay' to 'a(y)' to avoid null character problem at ZCL scene clsuter X-Git-Tag: submit/tizen/20170512.045637~54 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9d765495031dc1a0416f5d260492d0c19399cadd;p=platform%2Fcore%2Fapi%2Fzigbee.git Change 'ay' to 'a(y)' to avoid null character problem at ZCL scene clsuter Change-Id: I00fbdcfccb8dd620e59b7b98a08f226c5393fdaf Signed-off-by: saerome kim --- diff --git a/lib/zbl-dbus.c b/lib/zbl-dbus.c index 969e1cb..5e6385e 100644 --- a/lib/zbl-dbus.c +++ b/lib/zbl-dbus.c @@ -2754,10 +2754,10 @@ GROUP_VIEW_GROUP_REQ_OUT: GVariantIter *sceneNameIter = NULL; GVariantIter *extendedSetIter = NULL; - g_variant_get(parameters, "(qyyqyqayyay)", &addr16, &ep, &status, &group_id, &scene_id, + g_variant_get(parameters, "(qyyqyqa(y)ya(y))", &addr16, &ep, &status, &group_id, &scene_id, &transition_time, &sceneNameIter, &ext_len, &extendedSetIter); - g_variant_iter_loop(sceneNameIter, "y", &value); + g_variant_iter_loop(sceneNameIter, "(y)", &value); /** first byte indicates the length of the string */ len = value -'0'; @@ -2769,7 +2769,7 @@ GROUP_VIEW_GROUP_REQ_OUT: } scene_name[j] = value; j++; - while (g_variant_iter_loop(sceneNameIter, "y", &value)) { + while (g_variant_iter_loop(sceneNameIter, "(y)", &value)) { scene_name[j] = value; j++; } @@ -2789,7 +2789,7 @@ GROUP_VIEW_GROUP_REQ_OUT: ERR("calloc() Fail(%d)", errno); goto SCENE_VIEW_SCENE_REQ_OUT; } - while (g_variant_iter_loop(extendedSetIter, "y", &value)) { + while (g_variant_iter_loop(extendedSetIter, "(y)", &value)) { extendedFieldSets[j] = value; j++; } @@ -2855,7 +2855,7 @@ SCENE_VIEW_SCENE_REQ_OUT: unsigned char *scene_list = NULL; GVariantIter *sceneListIter = NULL; - g_variant_get(parameters, "(qyyyqyay)", &addr16, &ep, &status, &capacity, &group_id, + g_variant_get(parameters, "(qyyyqya(y))", &addr16, &ep, &status, &capacity, &group_id, &scene_count, &sceneListIter); if (0 < scene_count) { @@ -2864,7 +2864,7 @@ SCENE_VIEW_SCENE_REQ_OUT: ERR("calloc() Fail(%d)", errno); goto SCENE_GET_SCENE_MEMBERSHIP_REQ_OUT; } - while (g_variant_iter_loop(sceneListIter, "y", &value)) { + while (g_variant_iter_loop(sceneListIter, "(y)", &value)) { scene_list[j] = value; DBG("Scene_List 0x%02X", scene_list[j]); j++; @@ -6825,26 +6825,26 @@ int zbl_add_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id, container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container); container->userdata = user_data; - scenename_builder = g_variant_builder_new(G_VARIANT_TYPE("ay")); + scenename_builder = g_variant_builder_new(G_VARIANT_TYPE("a(y)")); while ('\0' != scene_name[j]) { - g_variant_builder_add(scenename_builder, "y", scene_name[j]); + g_variant_builder_add(scenename_builder, "(y)", scene_name[j]); j++; } scenename_variant = g_variant_builder_end(scenename_builder); g_variant_builder_unref(scenename_builder); - extensionfieldSet_builder = g_variant_builder_new(G_VARIANT_TYPE("ay")); + extensionfieldSet_builder = g_variant_builder_new(G_VARIANT_TYPE("a(y)")); while (index < ext_field_len) { INFO("Ext contents 0x%02X", extension_field_sets[index]); - g_variant_builder_add(extensionfieldSet_builder, "y", extension_field_sets[index]); + g_variant_builder_add(extensionfieldSet_builder, "(y)", extension_field_sets[index]); index++; } extensionfieldSet_variant = g_variant_builder_end(extensionfieldSet_builder); g_variant_builder_unref(extensionfieldSet_builder); g_dbus_proxy_call(zcl_scene_proxy, "add_scene", - g_variant_new("(qyqyqq@ay@ay)", addr16, ep, group_id, scene_id, transition_time, + g_variant_new("(qyqyqq@a(y)@a(y))", addr16, ep, group_id, scene_id, transition_time, ext_field_len, scenename_variant, extensionfieldSet_variant), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);