Handle zero padding anywhere in the combined adv data (#4208)

fixes https://github.com/esphome/issues/issues/3913
This commit is contained in:
J. Nick Koston 2022-12-19 11:40:01 -10:00 committed by GitHub
parent b48b5d6cc7
commit 573ea55187
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -706,11 +706,7 @@ void ESPBTDevice::parse_adv_(const esp_ble_gap_cb_param_t::ble_scan_result_evt_p
while (offset + 2 < len) { while (offset + 2 < len) {
const uint8_t field_length = payload[offset++]; // First byte is length of adv record const uint8_t field_length = payload[offset++]; // First byte is length of adv record
if (field_length == 0) { if (field_length == 0) {
if (offset < param.adv_data_len && param.scan_rsp_len > 0) { // Zero padded advertisement data continue; // Possible zero padded advertisement data
offset = param.adv_data_len;
continue;
}
break;
} }
// first byte of adv record is adv record type // first byte of adv record is adv record type