From 6e58f66d3003598c16b23be5691f31d72ba12ada Mon Sep 17 00:00:00 2001 From: Andre Guedes Date: Tue, 4 Oct 2011 19:55:07 -0300 Subject: [PATCH] hcidump: Fix EIR parsing in evt_le_advertising_report_dump Only the first EIR data structure from the LE advertising report event is dumped. This patch fix this, so all EIR data structure present in that event is dumped. --- tools/parser/hci.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/parser/hci.c b/tools/parser/hci.c index a517fb434..eb67cafa0 100644 --- a/tools/parser/hci.c +++ b/tools/parser/hci.c @@ -3534,6 +3534,7 @@ static inline void evt_le_advertising_report_dump(int level, struct frame *frm) while (num_reports--) { char addr[18]; le_advertising_info *info = frm->ptr; + int offset = 0; p_ba2str(&info->bdaddr, addr); @@ -3544,9 +3545,12 @@ static inline void evt_le_advertising_report_dump(int level, struct frame *frm) printf("bdaddr %s (%s)\n", addr, bdaddrtype2str(info->bdaddr_type)); - if (info->length > 0) { - ext_inquiry_data_dump(level, frm, - ((uint8_t *) &info->length) + 1); + while (offset < info->length) { + int eir_data_len = info->data[offset]; + + ext_inquiry_data_dump(level, frm, &info->data[offset]); + + offset += eir_data_len + 1; } frm->ptr += LE_ADVERTISING_INFO_SIZE + info->length; -- 2.47.3