Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a40363d3 authored by Lianchao Song's avatar Lianchao Song Committed by android-build-merger
Browse files

Merge "Fix SIGSEGV during Hands-free client SDP"

am: 30805ee5

Change-Id: I0b8496cfdcb2aa3086e7d59a3d7cb62078997f4f
parents 537f1b9a 30805ee5
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -381,7 +381,7 @@ void bta_hf_client_collision_cback(UNUSED_ATTR tBTA_SYS_CONN_STATUS status,
    /* Cancel SDP if it had been started. */
    /* Cancel SDP if it had been started. */
    if (client_cb->p_disc_db) {
    if (client_cb->p_disc_db) {
      (void)SDP_CancelServiceSearch(client_cb->p_disc_db);
      (void)SDP_CancelServiceSearch(client_cb->p_disc_db);
      bta_hf_client_free_db(NULL);
      osi_free_and_reset((void**)&client_cb->p_disc_db);
    }
    }


    /* reopen registered server */
    /* reopen registered server */
+1 −1
Original line number Original line Diff line number Diff line
@@ -284,7 +284,7 @@ void bta_hf_client_rfc_do_close(tBTA_HF_CLIENT_DATA* p_data) {
    /* Cancel SDP if it had been started. */
    /* Cancel SDP if it had been started. */
    if (client_cb->p_disc_db) {
    if (client_cb->p_disc_db) {
      (void)SDP_CancelServiceSearch(client_cb->p_disc_db);
      (void)SDP_CancelServiceSearch(client_cb->p_disc_db);
      bta_hf_client_free_db(NULL);
      osi_free_and_reset((void**)&client_cb->p_disc_db);
    }
    }
  }
  }
}
}
+3 −1
Original line number Original line Diff line number Diff line
@@ -25,6 +25,7 @@
 ******************************************************************************/
 ******************************************************************************/


#include <string.h>
#include <string.h>
#include <base/logging.h>


#include "bt_utils.h"
#include "bt_utils.h"
#include "bta_api.h"
#include "bta_api.h"
@@ -331,7 +332,7 @@ void bta_hf_client_do_disc(tBTA_HF_CLIENT_CB* client_cb) {


  if (!db_inited) {
  if (!db_inited) {
    /*free discover db */
    /*free discover db */
    bta_hf_client_free_db(NULL);
    osi_free_and_reset((void**)&client_cb->p_disc_db);
    /* sent failed event */
    /* sent failed event */
    tBTA_HF_CLIENT_DATA msg;
    tBTA_HF_CLIENT_DATA msg;
    msg.hdr.layer_specific = client_cb->handle;
    msg.hdr.layer_specific = client_cb->handle;
@@ -350,6 +351,7 @@ void bta_hf_client_do_disc(tBTA_HF_CLIENT_CB* client_cb) {
 *
 *
 ******************************************************************************/
 ******************************************************************************/
void bta_hf_client_free_db(tBTA_HF_CLIENT_DATA* p_data) {
void bta_hf_client_free_db(tBTA_HF_CLIENT_DATA* p_data) {
  CHECK(p_data != NULL);
  tBTA_HF_CLIENT_CB* client_cb =
  tBTA_HF_CLIENT_CB* client_cb =
      bta_hf_client_find_cb_by_handle(p_data->hdr.layer_specific);
      bta_hf_client_find_cb_by_handle(p_data->hdr.layer_specific);
  if (client_cb == NULL) {
  if (client_cb == NULL) {