From 43a325e5f47ee5a6546a5d588e7773c6514241ab Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Wed, 31 Oct 2012 10:57:18 +0200 Subject: [PATCH] core: Make remote name event parameters const --- src/event.c | 22 +++++++++++++++------- src/event.h | 4 ++-- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/event.c b/src/event.c index d7daed2ab..a5c67d2f8 100644 --- a/src/event.c +++ b/src/event.c @@ -37,6 +37,9 @@ #include #include +#include +#include +#include #include #include @@ -249,26 +252,31 @@ void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type confirm_name, legacy, data, data_len); } -void btd_event_remote_name(bdaddr_t *local, bdaddr_t *peer, char *name) +void btd_event_remote_name(bdaddr_t *local, bdaddr_t *peer, const char *name) { struct btd_adapter *adapter; struct btd_device *device; char filename[PATH_MAX + 1]; char local_addr[18], peer_addr[18]; GKeyFile *key_file; - char *data; + char *data, utf8_name[MGMT_MAX_NAME_LENGTH + 1]; gsize length = 0; if (!g_utf8_validate(name, -1, NULL)) { int i; + memset(utf8_name, 0, sizeof(utf8_name)); + strncpy(utf8_name, name, MGMT_MAX_NAME_LENGTH); + /* Assume ASCII, and replace all non-ASCII with spaces */ - for (i = 0; name[i] != '\0'; i++) { - if (!isascii(name[i])) - name[i] = ' '; + for (i = 0; utf8_name[i] != '\0'; i++) { + if (!isascii(utf8_name[i])) + utf8_name[i] = ' '; } /* Remove leading and trailing whitespace characters */ - g_strstrip(name); + g_strstrip(utf8_name); + + name = utf8_name; } if (!get_adapter_and_device(local, peer, &adapter, &device, FALSE)) @@ -399,7 +407,7 @@ int btd_event_ltk_notify(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type, } void btd_event_conn_complete(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type, - char *name, uint32_t class) + const char *name, uint32_t class) { struct btd_adapter *adapter; struct btd_device *device; diff --git a/src/event.h b/src/event.h index 1aa8704c2..aa8548bc5 100644 --- a/src/event.h +++ b/src/event.h @@ -27,9 +27,9 @@ void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type int8_t rssi, bool confirm_name, bool legacy, uint8_t *data, uint8_t data_len); -void btd_event_remote_name(bdaddr_t *local, bdaddr_t *peer, char *name); +void btd_event_remote_name(bdaddr_t *local, bdaddr_t *peer, const char *name); void btd_event_conn_complete(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type, - char *name, uint32_t class); + const char *name, uint32_t class); void btd_event_conn_failed(bdaddr_t *local, bdaddr_t *peer, uint8_t status); void btd_event_disconn_complete(bdaddr_t *local, bdaddr_t *peer); void btd_event_simple_pairing_complete(bdaddr_t *local, bdaddr_t *peer, uint8_t status); -- 2.47.3