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);