OSDN Git Service

Fix OOB in sdp_disc_server_rsp
authorTed Wang <tedwang@google.com>
Sat, 19 Jan 2019 06:25:23 +0000 (14:25 +0800)
committerTed Wang <tedwang@google.com>
Wed, 23 Jan 2019 06:09:24 +0000 (06:09 +0000)
Bug: 79883568
Test: manual
Change-Id: I71cd2f220839018f5b92ad153c1e294b40b07a90

stack/sdp/sdp_discovery.cc

index 51f8d6c..77cd4a7 100644 (file)
@@ -230,6 +230,12 @@ void sdp_disc_server_rsp(tCONN_CB* p_ccb, BT_HDR* p_msg) {
   p = (uint8_t*)(p_msg + 1) + p_msg->offset;
   uint8_t* p_end = p + p_msg->len;
 
+  if (p_msg->len < 1) {
+    android_errorWriteLog(0x534e4554, "79883568");
+    sdp_disconnect(p_ccb, SDP_GENERIC_ERROR);
+    return;
+  }
+
   BE_STREAM_TO_UINT8(rsp_pdu, p);
 
   p_msg->len--;