From 23aa15743397b345f3d948289fe90efa2a2e2b3e Mon Sep 17 00:00:00 2001 From: Jakub Pawlowski Date: Mon, 16 Jul 2018 06:40:35 -0700 Subject: [PATCH] Fix copy length calculation in sdp_copy_raw_data Test: compilation Bug: 110216176 Change-Id: Ic4a19c9f0fe8cd592bc6c25dcec7b1da49ff7459 --- stack/sdp/sdp_discovery.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/stack/sdp/sdp_discovery.cc b/stack/sdp/sdp_discovery.cc index 4b132f7a1..e06d20ac7 100644 --- a/stack/sdp/sdp_discovery.cc +++ b/stack/sdp/sdp_discovery.cc @@ -352,8 +352,15 @@ static void sdp_copy_raw_data(tCONN_CB* p_ccb, bool offset) { p = &p_ccb->rsp_list[0]; if (offset) { + cpy_len -= 1; type = *p++; + uint8_t* old_p = p; p = sdpu_get_len_from_type(p, type, &list_len); + if ((int)cpy_len < (p - old_p)) { + SDP_TRACE_WARNING("%s: no bytes left for data", __func__); + return; + } + cpy_len -= (p - old_p); } if (list_len < cpy_len) { cpy_len = list_len; -- 2.11.0