char in_type, char **data, int *data_len)
{
if (in_data == NULL || data == NULL || data_len == NULL)
- return TDS_ERROR_INTERNAL;
+ return TDS_ERROR_INVALID_PARAMETER;
if (in_len < 0)
- return TDS_ERROR_INTERNAL;
+ return TDS_ERROR_INVALID_PARAMETER;
int i;
int len = 0;
len = in_data[i];
if (len <= 0 || i + 1 >= in_len) {
TDS_ERR("Invalid advertising data");
- return TDS_ERROR_INTERNAL;
+ return TDS_ERROR_INVALID_PARAMETER;
}
type = in_data[i + 1];
if (i + len > in_len) {
TDS_ERR("Invalid advertising data");
- return TDS_ERROR_INTERNAL;
+ return TDS_ERROR_INVALID_PARAMETER;
} else if (len == 0) {
//TDS_DBG("AD Type 0x%02x data is not set. skip", in_type);
*data = NULL;
if (data_len < 3) {
TDS_ERR("Invalid TDS data, can not process!!");
- return TDS_ERROR_INTERNAL;
+ return TDS_ERROR_INVALID_PARAMETER;
}
while (index < data_len) {
char *data = NULL;
int data_len = 0;
+ if (scan_data == NULL) {
+ TDS_ERR("scan_data is NULL");
+ return;
+ }
+
__tds_get_ad_data_by_type(scan_info->adv_data, scan_info->adv_data_len,
TRANSPORT_DISCOVERY_DATA_AD_TYPE,
&data, &data_len);
{
TDS_CHECK_INPUT_PARAMETER(callback);
+ if (scan_data != NULL) {
+ TDS_INFO("scan_data already allocated. Free it first");
+ g_free(scan_data);
+ scan_data = NULL;
+ }
+
scan_data = g_malloc0(sizeof(struct tds_scan_data_s));
scan_data->search_role = search_role;
scan_data->callback = callback;
int _tds_stop_scan()
{
g_free(scan_data);
+ scan_data = NULL;
return bt_adapter_le_stop_scan();
}
#include "tds-provider-aware.h"
#include "tds-api.h"
-static char *g_local_address;
+static char *g_local_address = NULL;
static int __tds_service_start()
{
int ret;
+ if (g_local_address != NULL) {
+ TDS_INFO("g_local_address already allocated. Free it first");
+ g_free(g_local_address);
+ g_local_address = NULL;
+ }
+
ret = bt_adapter_get_address(&g_local_address);
if (ret != BT_ERROR_NONE) {
TDS_ERR("bt_adapter_get_address() failed. ret: %d", ret);
int ret;
TDS_DBG("Enter");
- if (g_local_address)
+ if (g_local_address) {
free(g_local_address);
+ g_local_address = NULL;
+ }
ret = bt_adapter_unset_state_changed_cb();
if (ret != BT_ERROR_NONE) {