@@ -575,7 +575,7 @@ size_t BleAdvertisingData::set(const uint8_t* buf, size_t len) {
575
575
return selfData_.size ();
576
576
}
577
577
selfData_.clear ();
578
- len = std::min (len, (size_t )BLE_MAX_ADV_DATA_LEN_EXT );
578
+ len = std::min (len, (size_t )BLE_MAX_SUPPORTED_ADV_DATA_LEN );
579
579
CHECK_TRUE (selfData_.append (buf, len), 0 );
580
580
return selfData_.size ();
581
581
}
@@ -587,7 +587,7 @@ size_t BleAdvertisingData::set(const iBeacon& beacon) {
587
587
return selfData_.size ();
588
588
}
589
589
590
- CHECK_TRUE (selfData_.reserve (BLE_MAX_ADV_DATA_LEN ), 0 );
590
+ CHECK_TRUE (selfData_.reserve (BLE_MAX_SUPPORTED_ADV_DATA_LEN ), 0 );
591
591
selfData_.append (0x02 );
592
592
selfData_.append (BLE_SIG_AD_TYPE_FLAGS);
593
593
selfData_.append (BLE_SIG_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
@@ -625,7 +625,7 @@ size_t BleAdvertisingData::append(BleAdvertisingDataType type, const uint8_t* bu
625
625
size_t adsLen = locate (selfData_.data (), selfData_.size (), type, &offset);
626
626
if (!force && adsLen > 0 ) {
627
627
// Update the existing AD structure.
628
- if ((selfData_.size () - adsLen + len + 2 ) <= BLE_MAX_ADV_DATA_LEN_EXT ) {
628
+ if ((selfData_.size () - adsLen + len + 2 ) <= BLE_MAX_SUPPORTED_ADV_DATA_LEN ) {
629
629
// Firstly, remove the existing AD structure.
630
630
selfData_.removeAt (offset, adsLen);
631
631
// Secondly, Update the AD structure.
@@ -638,12 +638,14 @@ size_t BleAdvertisingData::append(BleAdvertisingDataType type, const uint8_t* bu
638
638
selfData_.insert (offset + 2 , buf, len);
639
639
}
640
640
}
641
- else if ((selfData_.size () + len + 2 ) <= BLE_MAX_ADV_DATA_LEN_EXT ) {
641
+ else if ((selfData_.size () + len + 2 ) <= BLE_MAX_SUPPORTED_ADV_DATA_LEN ) {
642
642
// Append the AD structure at the and of advertising data.
643
643
CHECK_TRUE (selfData_.reserve (selfData_.size () + len + 2 ), selfData_.size ());
644
644
selfData_.append (len + 1 );
645
645
selfData_.append (static_cast <uint8_t >(type));
646
646
selfData_.append (buf, len);
647
+ } else {
648
+ return SYSTEM_ERROR_TOO_LARGE;
647
649
}
648
650
return selfData_.size ();
649
651
}
@@ -665,7 +667,7 @@ size_t BleAdvertisingData::appendAppearance(ble_sig_appearance_t appearance) {
665
667
}
666
668
667
669
size_t BleAdvertisingData::resize (size_t size) {
668
- selfData_.resize (std::min (size, (size_t )BLE_MAX_ADV_DATA_LEN_EXT ));
670
+ selfData_.resize (std::min (size, (size_t )BLE_MAX_SUPPORTED_ADV_DATA_LEN ));
669
671
return selfData_.size ();
670
672
}
671
673
@@ -726,7 +728,7 @@ size_t BleAdvertisingData::deviceName(char* buf, size_t len) const {
726
728
727
729
String BleAdvertisingData::deviceName () const {
728
730
String name;
729
- char buf[BLE_MAX_ADV_DATA_LEN ];
731
+ char buf[BLE_MAX_SUPPORTED_ADV_DATA_LEN ];
730
732
size_t len = deviceName (buf, sizeof (buf));
731
733
if (len > 0 ) {
732
734
for (size_t i = 0 ; i < len; i++) {
@@ -2264,7 +2266,7 @@ ssize_t BleLocalDevice::getScanResponseData(BleAdvertisingData* scanResponse) co
2264
2266
return SYSTEM_ERROR_INVALID_ARGUMENT;
2265
2267
}
2266
2268
scanResponse->clear ();
2267
- CHECK_TRUE (scanResponse->resize (BLE_MAX_ADV_DATA_LEN ), SYSTEM_ERROR_NO_MEMORY);
2269
+ CHECK_TRUE (scanResponse->resize (BLE_MAX_SUPPORTED_ADV_DATA_LEN ), SYSTEM_ERROR_NO_MEMORY);
2268
2270
size_t len = CHECK (hal_ble_gap_get_scan_response_data (scanResponse->data (), scanResponse->length (), nullptr ));
2269
2271
scanResponse->resize (len);
2270
2272
return len;
@@ -2518,8 +2520,8 @@ class BleScanDelegator {
2518
2520
size_t filterCustomDatalen;
2519
2521
const uint8_t * filterCustomData = filter_.customData (&filterCustomDatalen);
2520
2522
if (filterCustomData != nullptr && filterCustomDatalen > 0 ) {
2521
- size_t srLen = result.scanResponse ().get (BleAdvertisingDataType::MANUFACTURER_SPECIFIC_DATA, nullptr , BLE_MAX_ADV_DATA_LEN );
2522
- size_t advLen = result.advertisingData ().get (BleAdvertisingDataType::MANUFACTURER_SPECIFIC_DATA, nullptr , BLE_MAX_ADV_DATA_LEN_EXT );
2523
+ size_t srLen = result.scanResponse ().get (BleAdvertisingDataType::MANUFACTURER_SPECIFIC_DATA, nullptr , BLE_MAX_SUPPORTED_ADV_DATA_LEN );
2524
+ size_t advLen = result.advertisingData ().get (BleAdvertisingDataType::MANUFACTURER_SPECIFIC_DATA, nullptr , BLE_MAX_SUPPORTED_ADV_DATA_LEN );
2523
2525
if (srLen != filterCustomDatalen && advLen != filterCustomDatalen) {
2524
2526
LOG_DEBUG (TRACE, " Custom data mismatched." );
2525
2527
return false ;
0 commit comments