Fix scan filter issue for manufacturer data 08/316608/1
authorWootak Jung <wootak.jung@samsung.com>
Mon, 16 Dec 2024 01:23:29 +0000 (10:23 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Mon, 16 Dec 2024 01:59:54 +0000 (10:59 +0900)
Change-Id: I0f2e509f6d2bd1a7e284a9df6356eff45e2cfa1e
Signed-off-by: Sohyeon Choi <shss.choi@samsung.com>
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
bt-oal/bluez_hal/src/bt-hal-gatt.c
bt-service/services/adapter/bt-service-core-adapter-le.c

index bcc95a2a3d26aafe60defa722b976858012c293e..c227fb99e507dba3deaef11adf4c5e78de579e1f 100644 (file)
@@ -723,7 +723,6 @@ static int __bt_hal_add_adv_ind_info(bt_hal_le_adv_info_t *adv_info)
                return -1;
 
        if (__bt_hal_get_adv_ind_info(adv_info->addr) != NULL) {
-               DBG("Adv info already present");
                return -1;
        }
 
index a4c9613520bdde4b0c6ca0e7eec5fa9d21995d02..1f9454ec4b965d441203a7c2b83efdd63c0d3956 100644 (file)
@@ -805,7 +805,8 @@ static gboolean __bt_check_scan_result_with_filter(const char *device_address, i
                                        } else {
                                                if (data_len >= BLUETOOTH_ADVERTISING_DATA_LENGTH_MAX)
                                                        data_len = BLUETOOTH_ADVERTISING_DATA_LENGTH_MAX - 1;
-                                               if (_bt_byte_arr_cmp_with_mask(data + 2,
+                                               if ((data_len - 2 >= filter_data->manufacturer_data_mask.data_len) &&
+                                                               _bt_byte_arr_cmp_with_mask(data + 2,
                                                                (const char *)filter_data->manufacturer_data.data.data,
                                                                (const char *)filter_data->manufacturer_data_mask.data.data,
                                                                data_len - 2) == 0) {
@@ -832,7 +833,8 @@ static gboolean __bt_check_scan_result_with_filter(const char *device_address, i
                                        } else {
                                                if (data_len >= BLUETOOTH_ADVERTISING_DATA_LENGTH_MAX)
                                                        data_len = BLUETOOTH_ADVERTISING_DATA_LENGTH_MAX - 1;
-                                               if (_bt_byte_arr_cmp_with_mask(data + 2,
+                                               if ((data_len - 2 >= filter_data->manufacturer_data_mask.data_len) &&
+                                                               _bt_byte_arr_cmp_with_mask(data + 2,
                                                                (const char *)filter_data->manufacturer_data.data.data,
                                                                (const char *)filter_data->manufacturer_data_mask.data.data,
                                                                data_len - 2) == 0) {
@@ -907,7 +909,6 @@ static gboolean __bt_check_scan_result_with_filter(const char *device_address, i
                                continue;
                }
 
-               BT_INFO("The scan result is conformable.");
                return TRUE;
        }