mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-16 08:56:45 -05:00
bluez5: fix memleak
This commit is contained in:
parent
ecf10e0b1c
commit
31216c09c4
1 changed files with 13 additions and 3 deletions
|
|
@ -165,6 +165,16 @@ static struct spa_bt_adapter *adapter_find(struct spa_bt_monitor *monitor, const
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool check_iter_signature(DBusMessageIter *it, const char *sig)
|
||||||
|
{
|
||||||
|
char *v;
|
||||||
|
int res;
|
||||||
|
v = dbus_message_iter_get_signature(it);
|
||||||
|
res = strcmp(v, sig);
|
||||||
|
dbus_free(v);
|
||||||
|
return res == 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int adapter_update_props(struct spa_bt_adapter *adapter,
|
static int adapter_update_props(struct spa_bt_adapter *adapter,
|
||||||
DBusMessageIter *props_iter,
|
DBusMessageIter *props_iter,
|
||||||
DBusMessageIter *invalidated_iter)
|
DBusMessageIter *invalidated_iter)
|
||||||
|
|
@ -228,7 +238,7 @@ static int adapter_update_props(struct spa_bt_adapter *adapter,
|
||||||
else if (strcmp(key, "UUIDs") == 0) {
|
else if (strcmp(key, "UUIDs") == 0) {
|
||||||
DBusMessageIter iter;
|
DBusMessageIter iter;
|
||||||
|
|
||||||
if (strcmp(dbus_message_iter_get_signature(&it[1]), "as") != 0)
|
if (!check_iter_signature(&it[1], "as"))
|
||||||
goto next;
|
goto next;
|
||||||
|
|
||||||
dbus_message_iter_recurse(&it[1], &iter);
|
dbus_message_iter_recurse(&it[1], &iter);
|
||||||
|
|
@ -612,7 +622,7 @@ static int device_update_props(struct spa_bt_device *device,
|
||||||
else if (strcmp(key, "UUIDs") == 0) {
|
else if (strcmp(key, "UUIDs") == 0) {
|
||||||
DBusMessageIter iter;
|
DBusMessageIter iter;
|
||||||
|
|
||||||
if (strcmp(dbus_message_iter_get_signature(&it[1]), "as") != 0)
|
if (!check_iter_signature(&it[1], "as"))
|
||||||
goto next;
|
goto next;
|
||||||
|
|
||||||
dbus_message_iter_recurse(&it[1], &iter);
|
dbus_message_iter_recurse(&it[1], &iter);
|
||||||
|
|
@ -777,7 +787,7 @@ static int transport_update_props(struct spa_bt_transport *transport,
|
||||||
char *value;
|
char *value;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
if (strcmp(dbus_message_iter_get_signature(&it[1]), "ay") != 0)
|
if (!check_iter_signature(&it[1], "ay"))
|
||||||
goto next;
|
goto next;
|
||||||
|
|
||||||
dbus_message_iter_recurse(&it[1], &iter);
|
dbus_message_iter_recurse(&it[1], &iter);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue