From 0322216c7b069c0e1eb7aebfa7351197399729eb Mon Sep 17 00:00:00 2001 From: Tedd Ho-Jeong An Date: Mon, 18 Oct 2021 10:28:27 -0700 Subject: [PATCH] attrib-server: Fix unchecked return value This patch fixes the unchecked return value(CWE-252) issues reported by the Coverity. Signed-off-by: Anuj Jain Signed-off-by: Ayush Garg --- src/attrib-server.c | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/attrib-server.c b/src/attrib-server.c index 17ed61f..070e328 100755 --- a/src/attrib-server.c +++ b/src/attrib-server.c @@ -797,6 +797,7 @@ static int read_device_ccc(struct btd_device *device, uint16_t handle, { char *filename; GKeyFile *key_file; + GError *gerr = NULL; char group[6]; char *str; unsigned int config; @@ -809,7 +810,11 @@ static int read_device_ccc(struct btd_device *device, uint16_t handle, } key_file = g_key_file_new(); - g_key_file_load_from_file(key_file, filename, 0, NULL); + if (!g_key_file_load_from_file(key_file, filename, 0, &gerr)) { + error("Unable to load key file from %s: (%s)", filename, + gerr->message); + g_error_free(gerr); + } sprintf(group, "%hu", handle); @@ -912,6 +917,7 @@ static uint16_t write_value(struct gatt_channel *channel, uint16_t handle, struct attribute *a; uint8_t status; GList *l; + GError *gerr = NULL; guint h = handle; l = g_list_find_custom(channel->server->database, @@ -956,7 +962,11 @@ static uint16_t write_value(struct gatt_channel *channel, uint16_t handle, } key_file = g_key_file_new(); - g_key_file_load_from_file(key_file, filename, 0, NULL); + if (!g_key_file_load_from_file(key_file, filename, 0, &gerr)) { + error("Unable to load key file from %s: (%s)", filename, + gerr->message); + g_error_free(gerr); + } sprintf(group, "%hu", handle); sprintf(value, "%hX", cccval); @@ -965,7 +975,12 @@ static uint16_t write_value(struct gatt_channel *channel, uint16_t handle, data = g_key_file_to_data(key_file, &length, NULL); if (length > 0) { create_file(filename, 0600); - g_file_set_contents(filename, data, length, NULL); + if (!g_file_set_contents(filename, data, length, + &gerr)) { + error("Unable set contents for %s: (%s)", + filename, gerr->message); + g_error_free(gerr); + } } #ifdef TIZEN_FEATURE_BLUEZ_MODIFY @@ -982,7 +997,11 @@ static uint16_t write_value(struct gatt_channel *channel, uint16_t handle, g_key_file_free(key_file); key_file = g_key_file_new(); - g_key_file_load_from_file(key_file, filename, 0, NULL); + if (!g_key_file_load_from_file(key_file, filename, 0, &gerr)) { + error("Unable to load key file from %s: (%s)", filename, + gerr->message); + g_error_free(gerr); + } memset(&group, 0x00, 6); memset(&value, 0x00, 5); @@ -994,7 +1013,12 @@ static uint16_t write_value(struct gatt_channel *channel, uint16_t handle, data = g_key_file_to_data(key_file, &length, NULL); if (length > 0) { create_file(filename, S_IRUSR | S_IWUSR); - g_file_set_contents(filename, data, length, NULL); + if (!g_file_set_contents(filename, data, length, + &gerr)) { + error("Unable set contents for %s: (%s)", + filename, gerr->message); + g_error_free(gerr); + } } #endif -- 2.7.4