static int __bt_hal_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 BT_HAL_ERROR_NONE;
}
char *previous = NULL;
char *current = NULL;
+ if (g_strcmp0(g_variant_get_type_string(param->parameters), "(sss)") != 0) {
+ ERR("Invalid variant format");
+ return FALSE;
+ }
+
/* TODO: Handle Name Owener changed Signal */
if (__bt_hal_get_owner_info(param->parameters, &name, &previous, ¤t)) {
DBG("Fail to get the owner info");
return FALSE;
}
- if (current && *current != '\0') {
- g_free(name);
- g_free(previous);
- g_free(current);
+
+ if (*current != '\0')
return FALSE;
- }
+
+ if (name == NULL)
+ return FALSE;
+
if (strcasecmp(name, BT_HAL_BLUEZ_NAME) == 0) {
DBG("Bluetoothd is terminated");
_bt_hal_le_deinit();
}
INFO("Name Owner changed [%s]", name);
- g_free(name);
- g_free(previous);
- g_free(current);
-
} else if (g_strcmp0(param->interface_name, BT_HAL_PROPERTIES_INTERFACE) == 0) {
DBG("Manager Event: Interface Name: BT_HAL_PROPERTIES_INTERFACE");
__bt_hal_handle_property_changed_event(param->parameters, param->object_path);
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;
}
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);
/* TODO: MAP? see above */
- g_free(address);
- 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");
/* Check if the obex server was terminated abnormally */
_bt_obex_server_check_termination(name);
}
-
- g_free(name);
- g_free(previous);
- g_free(current);
} else if (g_strcmp0(interface_name, BT_AGENT_INTERFACE) == 0) {
_bt_handle_agent_event(parameters, signal_name);
} else if (g_strcmp0(interface_name, BT_DEVICE_INTERFACE) == 0) {
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;
}
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;