From: DoHyun Pyun Date: Mon, 31 May 2021 01:11:21 +0000 (+0900) Subject: Allow zero length for GATT server write request X-Git-Tag: submit/tizen_6.0/20220926.043134~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cebef50cf630acd2194235d2827d546bb53c31db;p=platform%2Fcore%2Fapi%2Fbluetooth.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: I5142ecd4dc7964caa2421aa0ecb39f0d0055c305 Signed-off-by: DoHyun Pyun --- diff --git a/src/bluetooth-common.c b/src/bluetooth-common.c index c6514ef..c3bda91 100644 --- a/src/bluetooth-common.c +++ b/src/bluetooth-common.c @@ -2733,17 +2733,20 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us void *user_data_write = NULL; bt_gatt_h gatt_handle = NULL; bt_gatt_h server = NULL; + char *val = NULL; bool is_own_handle = false; bluetooth_gatt_server_write_requested_info_t *write_req = (bluetooth_gatt_server_write_requested_info_t *)(param->param_data); - char *val = g_malloc0(write_req->length); - if (val == NULL) { - BT_ERR("failed to allocate val"); - return; - } + if (write_req->length > 0) { + val = g_malloc0(write_req->length); + if (val == NULL) { + BT_ERR("failed to allocate val"); + return; + } - memcpy(val, write_req->data.data, write_req->length); + memcpy(val, write_req->data.data, write_req->length); + } cb_wr = __bt_gatt_attribute_get_value_change_cb(write_req->attribute_handle, &server, &gatt_handle, &is_own_handle, &user_data_write);