OSDN Git Service

DO NOT MERGE SDP: Fix the param_len recalculation
authorHansong Zhang <hsz@google.com>
Fri, 20 Jul 2018 17:16:14 +0000 (10:16 -0700)
committerHansong Zhang <hsz@google.com>
Fri, 20 Jul 2018 17:17:04 +0000 (10:17 -0700)
Bug: 78136869
Test: manual connection to an A2DP device
Change-Id: If32b848696180ab2fd33f514de89cb8c3d202e39

stack/sdp/sdp_server.c

index 069227c..76a622e 100644 (file)
@@ -363,7 +363,6 @@ static void process_service_attr_req (tCONN_CB *p_ccb, UINT16 trans_num,
     if (max_list_len > (p_ccb->rem_mtu_size - SDP_MAX_ATTR_RSPHDR_LEN))
         max_list_len = p_ccb->rem_mtu_size - SDP_MAX_ATTR_RSPHDR_LEN;
 
-    param_len = (UINT16)(p_req_end - p_req);
     p_req = sdpu_extract_attr_seq (p_req, param_len, &attr_seq);
 
     if ((!p_req) || (!attr_seq.num_attr) ||
@@ -647,6 +646,7 @@ static void process_service_search_attr_req (tCONN_CB *p_ccb, UINT16 trans_num,
     if (max_list_len > (p_ccb->rem_mtu_size - SDP_MAX_SERVATTR_RSPHDR_LEN))
         max_list_len = p_ccb->rem_mtu_size - SDP_MAX_SERVATTR_RSPHDR_LEN;
 
+    param_len = (UINT16)(p_req_end - p_req);
     p_req = sdpu_extract_attr_seq (p_req, param_len, &attr_seq);
 
     if ((!p_req) || (!attr_seq.num_attr) ||