fix regression in le_handle_advertisement_report

This commit is contained in:
matthias.ringwald@gmail.com 2015-02-16 20:38:10 +00:00
parent 0eda16ef83
commit 03fbe9c621

View File

@ -726,10 +726,9 @@ void le_handle_advertisement_report(uint8_t *packet, int size){
int i; int i;
log_info("HCI: handle adv report with num reports: %d", num_reports); log_info("HCI: handle adv report with num reports: %d", num_reports);
uint8_t event[2 + LE_ADVERTISING_DATA_SIZE]; // use upper bound to avoid var size automatic var uint8_t event[12 + LE_ADVERTISING_DATA_SIZE]; // use upper bound to avoid var size automatic var
for (i=0; i<num_reports;i++){ for (i=0; i<num_reports;i++){
uint8_t data_length = packet[offset + 8]; uint8_t data_length = packet[offset + 8];
uint8_t event_size = 10 + data_length;
int pos = 0; int pos = 0;
event[pos++] = GAP_LE_ADVERTISING_REPORT; event[pos++] = GAP_LE_ADVERTISING_REPORT;
event[pos++] = event_size; event[pos++] = event_size;
@ -741,8 +740,8 @@ void le_handle_advertisement_report(uint8_t *packet, int size){
memcpy(&event[pos], &packet[offset], data_length); memcpy(&event[pos], &packet[offset], data_length);
pos += data_length; pos += data_length;
offset += data_length + 1; // rssi offset += data_length + 1; // rssi
hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event)); hci_dump_packet( HCI_EVENT_PACKET, 0, event, pos);
hci_stack->packet_handler(HCI_EVENT_PACKET, event, sizeof(event)); hci_stack->packet_handler(HCI_EVENT_PACKET, event, pos);
} }
} }
#endif #endif