attrib-server: Fix unchecked return value
authorTedd Ho-Jeong An <tedd.an@intel.com>
Mon, 18 Oct 2021 17:28:27 +0000 (10:28 -0700)
committerAyush Garg <ayush.garg@samsung.com>
Fri, 11 Mar 2022 13:38:37 +0000 (19:08 +0530)
This patch fixes the unchecked return value(CWE-252) issues reported by
the Coverity.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
src/attrib-server.c

index 17ed61f..070e328 100755 (executable)
@@ -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