From 5af8a574eb409241f5801e9da73be00a3e8eb0c9 Mon Sep 17 00:00:00 2001 From: Andrei Emeltchenko Date: Mon, 4 Nov 2013 15:22:37 +0200 Subject: [PATCH] android/daemon: Fix setting adapter name Android use the full string returned even if we terminate it with '\0'. --- android/adapter.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/android/adapter.c b/android/adapter.c index b942cf141..fb5c462a2 100644 --- a/android/adapter.c +++ b/android/adapter.c @@ -145,8 +145,8 @@ static void scan_mode_changed(void) static void adapter_name_changed(const uint8_t *name) { struct hal_ev_adapter_props_changed *ev; - uint8_t buf[sizeof(*ev) + sizeof(struct hal_property) + - HAL_MAX_NAME_LENGTH]; + size_t len = strlen((const char *) name); + uint8_t buf[sizeof(*ev) + sizeof(struct hal_property) + len]; memset(buf, 0, sizeof(buf)); ev = (void *) buf; @@ -154,10 +154,11 @@ static void adapter_name_changed(const uint8_t *name) ev->num_props = 1; ev->status = HAL_STATUS_SUCCESS; ev->props[0].type = HAL_PROP_ADAPTER_NAME; - ev->props[0].len = HAL_MAX_NAME_LENGTH; - memcpy(ev->props->val, name, HAL_MAX_NAME_LENGTH); + /* Android expects value without NULL terminator */ + ev->props[0].len = len; + memcpy(ev->props->val, name, len); - DBG("Adapter name changed to: %s", ev->props->val); + DBG("Adapter name changed to: %s", name); ipc_send(notification_io, HAL_SERVICE_ID_BLUETOOTH, HAL_EV_ADAPTER_PROPS_CHANGED, sizeof(buf), ev, -1); -- 2.47.3