OSDN Git Service

[automerger] Fix copy length calculation in sdp_copy_raw_data am: 1a0571a4ac am:...
authorAndroid Build Merger (Role) <noreply-android-build-merger@google.com>
Fri, 10 Aug 2018 07:04:30 +0000 (07:04 +0000)
committerAndroid Build Merger (Role) <noreply-android-build-merger@google.com>
Fri, 10 Aug 2018 07:04:30 +0000 (07:04 +0000)
Change-Id: I37cb9240f3e471768d454e41a37143f16bd4f4e7

stack/sdp/sdp_discovery.c

index f0728ec..9462a27 100644 (file)
@@ -377,8 +377,15 @@ static void sdp_copy_raw_data (tCONN_CB *p_ccb, BOOLEAN offset)
 
         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 )
         {