]> granicus.if.org Git - esp-idf/commitdiff
component/bt: Fix bug of SDP find services by uuid always return success
authorbaohongde <baohongde@espressif.com>
Mon, 20 Aug 2018 08:30:08 +0000 (16:30 +0800)
committerbot <bot@espressif.com>
Mon, 27 Aug 2018 02:14:45 +0000 (02:14 +0000)
components/bt/bluedroid/stack/sdp/sdp_discovery.c

index 8f76f2022cad0b7ed2d090c519dee415f62e526b..d63b164dedf2446488953efb377674869f3e343d 100644 (file)
@@ -354,15 +354,17 @@ static void sdp_copy_raw_data (tCONN_CB *p_ccb, BOOLEAN offset)
             type = *p++;
             p = sdpu_get_len_from_type (p, type, &list_len);
         }
-        if (list_len && list_len < cpy_len ) {
+        if (list_len < cpy_len ) {
             cpy_len = list_len;
         }
 #if (SDP_DEBUG_RAW == TRUE)
-        SDP_TRACE_WARNING("list_len :%d cpy_len:%d raw_size:%d raw_used:%d\n",
+        SDP_TRACE_DEBUG("list_len :%d cpy_len:%d raw_size:%d raw_used:%d\n",
                           list_len, cpy_len, p_ccb->p_db->raw_size, p_ccb->p_db->raw_used);
 #endif
-        memcpy (&p_ccb->p_db->raw_data[p_ccb->p_db->raw_used], p, cpy_len);
-        p_ccb->p_db->raw_used += cpy_len;
+        if (cpy_len != 0){
+            memcpy (&p_ccb->p_db->raw_data[p_ccb->p_db->raw_used], p, cpy_len);
+            p_ccb->p_db->raw_used += cpy_len;
+        }
     }
 }
 #endif