diff --git a/system/main/shim/utils.cc b/system/main/shim/utils.cc index dcf1725beb1f4e4f249f8aa576d2c5fa3e500744..9f18ddc4f76ee49b2c50f9fd5e5b1f7c828cebea 100644 --- a/system/main/shim/utils.cc +++ b/system/main/shim/utils.cc @@ -25,6 +25,10 @@ void parse_gap_data(const std::vector<uint8_t> &raw_data, hci::GapData gap_data; uint8_t len = raw_data[offset]; + if (offset + len + 1 > raw_data.size()) { + break; + } + auto begin = raw_data.begin() + offset; auto end = begin + len + 1; // 1 byte for len auto data_copy = std::make_shared<std::vector<uint8_t>>(begin, end);