Avoid incorrect reading of included service discovery results. --- src/shared/gatt-helpers.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/shared/gatt-helpers.c b/src/shared/gatt-helpers.c index c18f738..58104d9 100644 --- a/src/shared/gatt-helpers.c +++ b/src/shared/gatt-helpers.c @@ -123,6 +123,9 @@ unsigned int bt_gatt_result_characteristic_count(struct bt_gatt_result *result) if (result->opcode != BT_ATT_OP_READ_BY_TYPE_RSP) return 0; + if (result->data_len != 21 && result->data_len != 7) + return 0; + return result_element_count(result); } @@ -239,6 +242,9 @@ bool bt_gatt_iter_next_characteristic(struct bt_gatt_iter *iter, if (iter->result->opcode != BT_ATT_OP_READ_BY_TYPE_RSP) return false; + if (iter->result->data_len != 21 && iter->result->data_len != 7) + return false; + op = iter->result->op; pdu_ptr = iter->result->pdu + iter->pos; -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html