ua-db: Fix negative returns 33/224233/1
authorAbhay Agarwal <ay.agarwal@samsung.com>
Thu, 30 Jan 2020 06:19:48 +0000 (11:49 +0530)
committerDoHyun Pyun <dh79.pyun@samsung.com>
Fri, 7 Feb 2020 06:46:31 +0000 (15:46 +0900)
If payload device uid length is negative, assign this length as 0

Change-Id: I2bda321b6d27df2962771d809a0459c15724aaff
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
packaging/ua-manager.spec
ua-daemon/src/ua-manager-device-service-db.c
ua-daemon/src/ua-manager-payload-db.c

index a06bec7..de9539e 100644 (file)
@@ -1,6 +1,6 @@
 Name:       ua-manager
 Summary:    User awareness manager
-Version:    0.13.20
+Version:    0.13.21
 Release:    1
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
index 1b07fc2..db58c11 100644 (file)
@@ -786,6 +786,7 @@ GSList *_uam_db_get_service_devices_payloads_info()
        db_svc_dev_info_t *info = NULL;
        int sql_ret = SQLITE_OK;
        char *buf = NULL;
+       int uid_len = 0;
 
        do {
                sql_ret = sqlite3_step(stmt);
@@ -807,7 +808,8 @@ GSList *_uam_db_get_service_devices_payloads_info()
                        info->payload_info.primary_key = buf ? *buf : 13;
                        buf = (char *)sqlite3_column_text(stmt, 6);
                        info->payload_info.secondary_key = buf ? *buf : 1;
-                       info->payload_info.device_uid_len = sqlite3_column_int(stmt, 7);
+                       uid_len = sqlite3_column_int(stmt, 7);
+                       info->payload_info.device_uid_len = uid_len >= 0 ? uid_len : 0;
                        buf = (char *)sqlite3_column_text(stmt, 8);
                        if (buf)
                                memcpy(info->payload_info.device_uid, buf,
index 466c7fa..7b9c74c 100644 (file)
@@ -406,6 +406,7 @@ GSList *_uam_db_get_all_payloads(void)
        db_payload_info_t *info = NULL;
        int sql_ret = SQLITE_OK;
        char *buf = NULL;
+       int uid_len = 0;
        int user_data_len = 0;
 
        do {
@@ -420,7 +421,8 @@ GSList *_uam_db_get_all_payloads(void)
                        info->payload_info.primary_key = buf ? *buf : 13;
                        buf = (char *)sqlite3_column_text(stmt, 1);
                        info->payload_info.secondary_key = buf ? *buf : 1;
-                       info->payload_info.device_uid_len = sqlite3_column_int(stmt, 2);
+                       uid_len = sqlite3_column_int(stmt, 2);
+                       info->payload_info.device_uid_len = uid_len >= 0 ? uid_len : 0;
                        memset(info->payload_info.device_uid, 0,
                                info->payload_info.device_uid_len);
                        buf = (char *)sqlite3_column_text(stmt, 3);
@@ -434,6 +436,10 @@ GSList *_uam_db_get_all_payloads(void)
                        info->type = sqlite3_column_int(stmt, 6);
 
                        user_data_len = UAM_BLE_PAYLOAD_DEVICE_UID_MAX_LEN - 1 - info->payload_info.device_uid_len;
+
+                       if (user_data_len < 0)
+                               user_data_len = 0;
+
                        memset(info->payload_info.user_data, 0, user_data_len);
                        buf = (char *)sqlite3_column_text(stmt, 7);
                        if (buf)
@@ -444,9 +450,9 @@ GSList *_uam_db_get_all_payloads(void)
                                info->payload_info.primary_key,
                                info->payload_info.secondary_key);
                        for (int i = 0; i < info->payload_info.device_uid_len; i++)
-                               UAM_DBG("payload device uid [0x%2.2X]", info->payload_info.device_uid[i]);
+                               UAM_INFO("payload device uid [0x%2.2X]", info->payload_info.device_uid[i]);
                        for (int i = 0; i < user_data_len; i++)
-                               UAM_DBG("payload user data [0x%2.2X]", info->payload_info.user_data[i]);
+                               UAM_INFO("payload user data [0x%2.2X]", info->payload_info.user_data[i]);
 
                        payload_list = g_slist_append(payload_list, info);
                        break;