]> granicus.if.org Git - esp-idf/commitdiff
Component/bt: add check peer addr type in set adv params
authorzhiweijian <zhiweijian@espressif.com>
Mon, 19 Nov 2018 09:04:48 +0000 (17:04 +0800)
committerzhiweijian <zhiweijian@espressif.com>
Mon, 19 Nov 2018 09:04:48 +0000 (17:04 +0800)
components/bt/bluedroid/api/include/api/esp_gap_ble_api.h
components/bt/bluedroid/btc/profile/std/gap/btc_gap_ble.c

index 4e0f9d39589eb51337bffcb87f44e329c541234b..1115aa282159a35a3fd784b556e2018e226c07e9 100644 (file)
@@ -291,7 +291,7 @@ typedef struct {
     esp_ble_adv_type_t      adv_type;           /*!< Advertising type */
     esp_ble_addr_type_t     own_addr_type;      /*!< Owner bluetooth device address type */
     esp_bd_addr_t           peer_addr;          /*!< Peer device bluetooth device address */
-    esp_ble_addr_type_t     peer_addr_type;     /*!< Peer device bluetooth device address type */
+    esp_ble_addr_type_t     peer_addr_type;     /*!< Peer device bluetooth device address type, only support public address type and random address type */
     esp_ble_adv_channel_t   channel_map;        /*!< Advertising channel map */
     esp_ble_adv_filter_t    adv_filter_policy;  /*!< Advertising filter policy */
 } esp_ble_adv_params_t;
index c9d5f70b42e00caf3aed20d82502b4a08efd0949..3077d7b70873ab9156ff8408222bd4c1bc51d404 100644 (file)
@@ -452,6 +452,10 @@ static void btc_ble_start_advertising (esp_ble_adv_params_t *ble_adv_params, tBT
         status = ESP_BT_STATUS_PARM_INVALID;
         BTC_TRACE_ERROR("Invalid advertisting channel map parameters.\n");
     }
+    if (!BLE_ISVALID_PARAM(ble_adv_params->peer_addr_type, BLE_ADDR_TYPE_PUBLIC, BLE_ADDR_TYPE_RANDOM)) {
+        status = ESP_BT_STATUS_PARM_INVALID;
+        BTC_TRACE_ERROR("Invalid advertisting peer address type parameters.\n");
+    }
     if(status != ESP_BT_STATUS_SUCCESS) {
         if(start_adv_cback) {
             start_adv_cback(status);