OSDN Git Service

SDP: add return after SDP disconnection
authorZongheng Wang <wangzongheng@google.com>
Tue, 12 Nov 2019 20:59:44 +0000 (12:59 -0800)
committerZongheng Wang <wangzongheng@google.com>
Tue, 12 Nov 2019 21:08:40 +0000 (21:08 +0000)
A return is needed after sdp_disconnect(). It is the logic
expected and it prevents the use of p_ccb after it's freed.

Bug: 144177780
Test: manual test
Change-Id: I7a64382b36adca37a8ff0c7e361d89ecdc8f3b55

stack/sdp/sdp_discovery.cc

index baadd7a..bdc15bd 100644 (file)
@@ -436,6 +436,7 @@ static void process_service_attr_rsp(tCONN_CB* p_ccb, uint8_t* p_reply,
       if (!sdp_copy_raw_data(p_ccb, false)) {
         SDP_TRACE_ERROR("sdp_copy_raw_data failed");
         sdp_disconnect(p_ccb, SDP_ILLEGAL_PARAMETER);
+        return;
       }
 
 #endif
@@ -642,6 +643,7 @@ static void process_service_search_attr_rsp(tCONN_CB* p_ccb, uint8_t* p_reply,
   if (!sdp_copy_raw_data(p_ccb, true)) {
     SDP_TRACE_ERROR("sdp_copy_raw_data failed");
     sdp_disconnect(p_ccb, SDP_ILLEGAL_PARAMETER);
+    return;
   }
 #endif