From 524a46df900dfa40eb59220801d93c023cd9dd5a Mon Sep 17 00:00:00 2001 From: DoHyun Pyun Date: Mon, 31 May 2021 10:22:11 +0900 Subject: [PATCH 1/1] Allow zero length for GATT server write request Google's Chromecast app needs to response for zero length write request in GATT server. Change-Id: Ie925246c23078c070898f84a5fd8db908d2c854b Signed-off-by: DoHyun Pyun --- bt-service/services/gatt/bt-service-gatt.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/bt-service/services/gatt/bt-service-gatt.c b/bt-service/services/gatt/bt-service-gatt.c index a07b268..a4e312f 100644 --- a/bt-service/services/gatt/bt-service-gatt.c +++ b/bt-service/services/gatt/bt-service-gatt.c @@ -2011,7 +2011,7 @@ static void __bt_handle_gatt_server_write_requested(event_gatts_srvc_write_attr_ int result = BLUETOOTH_ERROR_NONE; gboolean need_resp; gboolean is_prepare_write; - char *write_val; + char *write_val = NULL; GVariant *data = NULL; int i; struct gatt_server_req_info *req_info = NULL; @@ -2027,11 +2027,6 @@ static void __bt_handle_gatt_server_write_requested(event_gatts_srvc_write_attr_ BT_INFO("GATT Server Write Req needs response: [%d]", event->need_rsp); BT_INFO("GATT Server Write Req Is Prep: [%d]", event->is_prep); - if (event->length <= 0) { - BT_INFO("GATT Server write requested, but length of attr value is 0"); - return; - } - #ifdef TIZEN_BLUEDROID_PORTING if (event->is_prep) { BT_INFO("receive prepare_write request"); @@ -2042,7 +2037,8 @@ static void __bt_handle_gatt_server_write_requested(event_gatts_srvc_write_attr_ need_resp = event->need_rsp; is_prepare_write = event->is_prep; - write_val = g_memdup(&event->value[0], event->length); + if (event->length > 0) + write_val = g_memdup(&event->value[0], event->length); address = g_malloc0(BT_ADDRESS_STRING_SIZE); _bt_convert_addr_type_to_string(address, -- 2.7.4