legacy: Const-ify sdp callback with user data

Bug: 187830698
Tag: #refactor
Test: gd/cert/run

Change-Id: I6897ee83258c9784559f9bfadb9655f9359acda3
diff --git a/system/bta/gatt/bta_gattc_cache.cc b/system/bta/gatt/bta_gattc_cache.cc
index 6eeaa42..93d7d37 100644
--- a/system/bta/gatt/bta_gattc_cache.cc
+++ b/system/bta/gatt/bta_gattc_cache.cc
@@ -271,7 +271,7 @@
 }
 
 /* Process the discovery result from sdp */
-void bta_gattc_sdp_callback(tSDP_STATUS sdp_status, void* user_data) {
+void bta_gattc_sdp_callback(tSDP_STATUS sdp_status, const void* user_data) {
   tBTA_GATTC_CB_DATA* cb_data = (tBTA_GATTC_CB_DATA*)user_data;
   tBTA_GATTC_SERV* p_srvc_cb = bta_gattc_find_scb_by_cid(cb_data->sdp_conn_id);
 
@@ -357,9 +357,9 @@
   SDP_InitDiscoveryDb(cb_data->p_sdp_db, BTA_GATT_SDP_DB_SIZE, 1, &uuid,
                       num_attrs, attr_list);
 
-  if (!SDP_ServiceSearchAttributeRequest2(p_server_cb->server_bda,
-                                          cb_data->p_sdp_db,
-                                          &bta_gattc_sdp_callback, cb_data)) {
+  if (!SDP_ServiceSearchAttributeRequest2(
+          p_server_cb->server_bda, cb_data->p_sdp_db, &bta_gattc_sdp_callback,
+          const_cast<const void*>(static_cast<void*>(cb_data)))) {
     osi_free(cb_data);
     return GATT_ERROR;
   }
diff --git a/system/bta/hf_client/bta_hf_client_sdp.cc b/system/bta/hf_client/bta_hf_client_sdp.cc
index db33481..96b7a6d 100755
--- a/system/bta/hf_client/bta_hf_client_sdp.cc
+++ b/system/bta/hf_client/bta_hf_client_sdp.cc
@@ -56,7 +56,7 @@
  * Returns          void
  *
  ******************************************************************************/
-static void bta_hf_client_sdp_cback(tSDP_STATUS status, void* data) {
+static void bta_hf_client_sdp_cback(tSDP_STATUS status, const void* data) {
   uint16_t event;
   tBTA_HF_CLIENT_DISC_RESULT* p_buf = (tBTA_HF_CLIENT_DISC_RESULT*)osi_malloc(
       sizeof(tBTA_HF_CLIENT_DISC_RESULT));
diff --git a/system/bta/jv/bta_jv_act.cc b/system/bta/jv/bta_jv_act.cc
index 8ccaada..b4e977d 100644
--- a/system/bta/jv/bta_jv_act.cc
+++ b/system/bta/jv/bta_jv_act.cc
@@ -721,9 +721,11 @@
  * Returns      void
  *
  ******************************************************************************/
-static void bta_jv_start_discovery_cback(tSDP_RESULT result, void* user_data) {
+static void bta_jv_start_discovery_cback(tSDP_RESULT result,
+                                         const void* user_data) {
   tBTA_JV_STATUS status;
-  uint32_t* p_rfcomm_slot_id = static_cast<uint32_t*>(user_data);
+  uint32_t* p_rfcomm_slot_id =
+      static_cast<uint32_t*>(const_cast<void*>(user_data));
 
   VLOG(2) << __func__ << ": res=" << loghex(static_cast<uint16_t>(result));
 
diff --git a/system/bta/sdp/bta_sdp_act.cc b/system/bta/sdp/bta_sdp_act.cc
index 296f84f..3c12e93 100644
--- a/system/bta/sdp/bta_sdp_act.cc
+++ b/system/bta/sdp/bta_sdp_act.cc
@@ -367,7 +367,7 @@
 }
 
 /** Callback from btm after search is completed */
-static void bta_sdp_search_cback(tSDP_RESULT result, void* user_data) {
+static void bta_sdp_search_cback(tSDP_RESULT result, const void* user_data) {
   tBTA_SDP_STATUS status = BTA_SDP_FAILURE;
   int count = 0;
   APPL_TRACE_DEBUG("%s() -  res: 0x%x", __func__, result);
@@ -376,7 +376,7 @@
 
   if (bta_sdp_cb.p_dm_cback == NULL) return;
 
-  Uuid& uuid = *(reinterpret_cast<Uuid*>(user_data));
+  Uuid& uuid = *(reinterpret_cast<Uuid*>(const_cast<void*>(user_data)));
 
   tBTA_SDP_SEARCH_COMP evt_data;
   memset(&evt_data, 0, sizeof(evt_data));
@@ -435,7 +435,8 @@
   tBTA_SDP bta_sdp;
   bta_sdp.sdp_search_comp = evt_data;
   bta_sdp_cb.p_dm_cback(BTA_SDP_SEARCH_COMP_EVT, &bta_sdp, (void*)&uuid);
-  osi_free(user_data);  // We no longer need the user data to track the search
+  osi_free(const_cast<void*>(
+      user_data));  // We no longer need the user data to track the search
 }
 
 /*******************************************************************************
diff --git a/system/stack/include/sdp_api.h b/system/stack/include/sdp_api.h
index cf5b938..588e421 100644
--- a/system/stack/include/sdp_api.h
+++ b/system/stack/include/sdp_api.h
@@ -105,7 +105,7 @@
 
 /* Define a callback function for when discovery is complete. */
 typedef void(tSDP_DISC_CMPL_CB)(tSDP_RESULT result);
-typedef void(tSDP_DISC_CMPL_CB2)(tSDP_RESULT result, void* user_data);
+typedef void(tSDP_DISC_CMPL_CB2)(tSDP_RESULT result, const void* user_data);
 
 typedef struct {
   RawAddress peer_addr;
@@ -273,7 +273,7 @@
 bool SDP_ServiceSearchAttributeRequest2(const RawAddress& p_bd_addr,
                                         tSDP_DISCOVERY_DB* p_db,
                                         tSDP_DISC_CMPL_CB2* p_cb,
-                                        void* user_data);
+                                        const void* user_data);
 
 /* API of utilities to find data in the local discovery database */
 
diff --git a/system/stack/sdp/sdp_api.cc b/system/stack/sdp/sdp_api.cc
index 853eb09..3732c54 100644
--- a/system/stack/sdp/sdp_api.cc
+++ b/system/stack/sdp/sdp_api.cc
@@ -193,7 +193,7 @@
 bool SDP_ServiceSearchAttributeRequest2(const RawAddress& p_bd_addr,
                                         tSDP_DISCOVERY_DB* p_db,
                                         tSDP_DISC_CMPL_CB2* p_cb2,
-                                        void* user_data) {
+                                        const void* user_data) {
   tCONN_CB* p_ccb;
 
   /* Specific BD address */
diff --git a/system/stack/sdp/sdpint.h b/system/stack/sdp/sdpint.h
index 7de3cf7..1a07d7d 100644
--- a/system/stack/sdp/sdpint.h
+++ b/system/stack/sdp/sdpint.h
@@ -146,7 +146,7 @@
   tSDP_DISC_CMPL_CB* p_cb; /* Callback for discovery done  */
   tSDP_DISC_CMPL_CB2*
       p_cb2; /* Callback for discovery done piggy back with the user data */
-  void* user_data; /* piggy back user data */
+  const void* user_data; /* piggy back user data */
   uint32_t
       handles[SDP_MAX_DISC_SERVER_RECS]; /* Discovered server record handles */
   uint16_t num_handles;                  /* Number of server handles     */
diff --git a/system/stack/test/fuzzers/sdp/sdpFuzzHelpers.h b/system/stack/test/fuzzers/sdp/sdpFuzzHelpers.h
index 1bebb65..3c4786c 100644
--- a/system/stack/test/fuzzers/sdp/sdpFuzzHelpers.h
+++ b/system/stack/test/fuzzers/sdp/sdpFuzzHelpers.h
@@ -271,6 +271,6 @@
 
 // Define our callback functions we'll be using within our functions
 void sdp_disc_cmpl_cb(tSDP_STATUS result) {}
-void sdp_disc_cmpl_cb2(tSDP_STATUS result, void* user_data) {}
+void sdp_disc_cmpl_cb2(tSDP_STATUS result, const void* user_data) {}
 
 #endif  // FUZZER_SDP_HELPERS_H_
diff --git a/system/test/headless/sdp/sdp.cc b/system/test/headless/sdp/sdp.cc
index 135352e..5f2f32f 100644
--- a/system/test/headless/sdp/sdp.cc
+++ b/system/test/headless/sdp/sdp.cc
@@ -32,8 +32,9 @@
 using namespace bluetooth::test::headless;
 
 static void bta_jv_start_discovery_callback(tSDP_STATUS result,
-                                            void* user_data) {
-  auto promise = static_cast<std::promise<uint16_t>*>(user_data);
+                                            const void* user_data) {
+  auto promise =
+      static_cast<std::promise<uint16_t>*>(const_cast<void*>(user_data));
   promise->set_value(result);
 }
 
diff --git a/system/test/mock/mock_stack_sdp_api.cc b/system/test/mock/mock_stack_sdp_api.cc
index df0a5b3..8f77355 100644
--- a/system/test/mock/mock_stack_sdp_api.cc
+++ b/system/test/mock/mock_stack_sdp_api.cc
@@ -114,7 +114,7 @@
 bool SDP_ServiceSearchAttributeRequest2(const RawAddress& p_bd_addr,
                                         tSDP_DISCOVERY_DB* p_db,
                                         tSDP_DISC_CMPL_CB2* p_cb2,
-                                        void* user_data) {
+                                        const void* user_data) {
   mock_function_count_map[__func__]++;
   return test::mock::stack_sdp_api::SDP_ServiceSearchAttributeRequest2(
       p_bd_addr, p_db, p_cb2, user_data);
diff --git a/system/test/mock/mock_stack_sdp_api.h b/system/test/mock/mock_stack_sdp_api.h
index 212ee2b..7633288 100644
--- a/system/test/mock/mock_stack_sdp_api.h
+++ b/system/test/mock/mock_stack_sdp_api.h
@@ -154,11 +154,12 @@
 // tSDP_DISC_CMPL_CB2* p_cb2, void* user_data Returns: bool
 struct SDP_ServiceSearchAttributeRequest2 {
   std::function<bool(const RawAddress& p_bd_addr, tSDP_DISCOVERY_DB* p_db,
-                     tSDP_DISC_CMPL_CB2* p_cb2, void* user_data)>
+                     tSDP_DISC_CMPL_CB2* p_cb2, const void* user_data)>
       body{[](const RawAddress& p_bd_addr, tSDP_DISCOVERY_DB* p_db,
-              tSDP_DISC_CMPL_CB2* p_cb2, void* user_data) { return false; }};
+              tSDP_DISC_CMPL_CB2* p_cb2,
+              const void* user_data) { return false; }};
   bool operator()(const RawAddress& p_bd_addr, tSDP_DISCOVERY_DB* p_db,
-                  tSDP_DISC_CMPL_CB2* p_cb2, void* user_data) {
+                  tSDP_DISC_CMPL_CB2* p_cb2, const void* user_data) {
     return body(p_bd_addr, p_db, p_cb2, user_data);
   };
 };