From: DoHyun Pyun Date: Mon, 31 May 2021 01:22:11 +0000 (+0900) Subject: Allow zero length for GATT server write request X-Git-Tag: accepted/tizen/unified/20210607.124412~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=524a46df900dfa40eb59220801d93c023cd9dd5a;hp=0e6841c958b14e2cae44bfe77ef9c9449e4312bf;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git 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 --- 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,