From e4fc38f46dbb0b8e0a0301c23ea87d438c99d73a Mon Sep 17 00:00:00 2001 From: Marcin Kraglak Date: Thu, 17 Jul 2014 10:42:46 +0200 Subject: [PATCH] android/gatt: Fix check for permissions error If error is returned from check_device_permissions, fill response data and return. In case of read errors we didn't send error response. Zero length data was send instead. --- android/gatt.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/android/gatt.c b/android/gatt.c index 4cd94b889..002592cfe 100644 --- a/android/gatt.c +++ b/android/gatt.c @@ -4508,8 +4508,11 @@ static void read_requested_attributes(void *data, void *user_data) error = check_device_permissions(process_data->device, process_data->opcode, permissions); - if (error) - goto done; + if (error != 0) { + resp_data->error = error; + resp_data->state = REQUEST_DONE; + return; + } resp_data->state = REQUEST_PENDING; @@ -4517,12 +4520,9 @@ static void read_requested_attributes(void *data, void *user_data) resp_data->offset, process_data->opcode, &process_data->device->bdaddr, - &value, &value_len)) { + &value, &value_len)) error = ATT_ECODE_UNLIKELY; - goto done; - } -done: /* We have value here already if no callback will be called */ if (value_len > 0) fill_gatt_response(resp_data, resp_data->handle, -- 2.47.3