Bluetooth: Fix parsing of empty extendend advertising header

Fix parsing of extended advertising when the extended advertising header
is empty. The flag field is excluded when none of the fields are present
and the extended header length field is 0.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
This commit is contained in:
Joakim Andersson 2021-06-25 11:40:28 +02:00 committed by Stig Bjørlykke
parent de9d5f76ff
commit 4cbec00089
1 changed files with 10 additions and 6 deletions

View File

@ -1119,14 +1119,18 @@ dissect_btle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
proto_tree_add_item(ext_header_tree, hf_extended_advertising_mode, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset += 1;
ext_flags_item = proto_tree_add_item(ext_header_tree, hf_extended_advertising_flags, tvb, offset, 1, ENC_NA);
ext_flags_tree = proto_item_add_subtree(ext_flags_item, ett_extended_advertising_flags);
if (ext_header_len > 0) {
ext_flags_item = proto_tree_add_item(ext_header_tree, hf_extended_advertising_flags, tvb, offset, 1, ENC_NA);
ext_flags_tree = proto_item_add_subtree(ext_flags_item, ett_extended_advertising_flags);
proto_tree_add_bitmask_list(ext_flags_tree, tvb, offset, 1, hfx_extended_advertising_flags, ENC_NA);
flags = tvb_get_guint8(tvb, offset);
offset += 1;
proto_tree_add_bitmask_list(ext_flags_tree, tvb, offset, 1, hfx_extended_advertising_flags, ENC_NA);
flags = tvb_get_guint8(tvb, offset);
offset += 1;
acad_len -= 1;
acad_len -= 1;
} else {
flags = 0;
}
if (flags & 0x01) {
/* Advertiser Address */