diff --git a/system/bta/hh/bta_hh_utils.cc b/system/bta/hh/bta_hh_utils.cc index 28dd2be54f8ba06f5f9318f13c9fde0336f828de..d0f60313345c642eba04ac689deceeb3da8ee931 100644 --- a/system/bta/hh/bta_hh_utils.cc +++ b/system/bta/hh/bta_hh_utils.cc @@ -429,7 +429,12 @@ void bta_hh_cleanup_disable(tBTA_HH_STATUS status) { osi_free_and_reset( (void**)&bta_hh_cb.kdev[xx].dscp_info.descriptor.dsc_list); } - osi_free_and_reset((void**)&bta_hh_cb.p_disc_db); + + if (bta_hh_cb.p_disc_db) { + /* Cancel SDP if it had been started. */ + (void)SDP_CancelServiceSearch (bta_hh_cb.p_disc_db); + osi_free_and_reset((void**)&bta_hh_cb.p_disc_db); + } if (bta_hh_cb.p_cback) { (*bta_hh_cb.p_cback)(BTA_HH_DISABLE_EVT, (tBTA_HH*)&status);