static int __bt_get_owner_info(GVariant *msg, char **name,
char **previous, char **current)
{
- g_variant_get(msg, "(sss)", name, previous, current);
+ g_variant_get(msg, "(&s&s&s)", name, previous, current);
return BLUETOOTH_ERROR_NONE;
}
char secure_addr[BT_ADDRESS_STRING_SIZE] = { 0 };
_bt_convert_addr_string_to_secure_string(secure_addr, address);
- BT_INFO("### Paired: %s", secure_addr);
+ BT_INFO(" ### Paired: %s", secure_addr);
__bt_update_remote_cache_devinfo(address, TRUE);
GVariant *uuids = NULL;
if (strcasecmp(member, "ObexAuthorize") == 0) {
__bt_get_agent_signal_info(msg, &address, &name, &uuid);
- param = g_variant_new("(iss)", result, address, name);
+ param = g_variant_new("(i&s&s)", result, address, name);
_bt_send_event(BT_OPP_SERVER_EVENT,
BLUETOOTH_EVENT_OBEX_SERVER_CONNECTION_AUTHORIZE,
param);
- g_free(address);
- g_free(name);
} else if (strcasecmp(member, "RfcommAuthorize") == 0) {
bt_rfcomm_server_info_t *server_info;
server_info = _bt_rfcomm_get_server_info_using_uuid(uuid);
ret_if(server_info == NULL);
ret_if(server_info->server_type != BT_CUSTOM_SERVER);
- param = g_variant_new("(isssn)", result, address, uuid, name,
+ param = g_variant_new("(i&s&s&sn)", result, address, uuid, name,
server_info->control_fd);
_bt_send_event(BT_RFCOMM_SERVER_EVENT,
BLUETOOTH_EVENT_RFCOMM_AUTHORIZE,
param);
- g_free(address);
- g_free(uuid);
- g_free(name);
}
}
char *previous = NULL;
char *current = NULL;
+ if (g_strcmp0(g_variant_get_type_string(parameters), "(sss)") != 0) {
+ BT_ERR("Invalid variant format");
+ return;
+ }
+
if (__bt_get_owner_info(parameters, &name, &previous, ¤t)) {
BT_ERR("Fail to get the owner info");
return;
}
- if (*current != '\0') {
- g_free(current);
- if (name)
- g_free(name);
- if (previous)
- g_free(previous);
+ if (*current != '\0')
+ return;
+
+ if (name == NULL)
return;
- }
if (strcasecmp(name, BT_BLUEZ_NAME) == 0) {
BT_INFO_C("### Bluetoothd is terminated");
/* Stop LE Scan */
_bt_stop_le_scan(name);
-
- g_free(name);
- g_free(previous);
- g_free(current);
} else if (g_strcmp0(interface_name, BT_PROPERTIES_INTERFACE) == 0) {
const char *path = object_path;