On Sun, Aug 18, 2013 at 8:40 AM, Tanu Kaskinen <tanu.kaskinen at linux.intel.com> wrote: > On Tue, 2013-08-13 at 01:54 -0300, jprvita at gmail.com wrote: >> +static int parse_adapter_properties(pa_bluetooth_discovery *y, const char *adapter, DBusMessageIter *i) { >> + DBusMessageIter element_i; >> + >> + pa_assert(y); >> + pa_assert(adapter); >> + >> + dbus_message_iter_recurse(i, &element_i); >> + >> + while (dbus_message_iter_get_arg_type(&element_i) == DBUS_TYPE_DICT_ENTRY) { >> + DBusMessageIter dict_i, variant_i; >> + const char *key; >> + >> + dbus_message_iter_recurse(&element_i, &dict_i); >> + >> + key = check_variant_property(&dict_i); >> + if (key == NULL) { >> + pa_log_error("Received invalid property for adapter %s", adapter); >> + return -1; >> + } >> + >> + dbus_message_iter_recurse(&dict_i, &variant_i); >> + >> + if (dbus_message_iter_get_arg_type(&variant_i) == DBUS_TYPE_STRING && pa_streq(key, "Address")) { >> + char *value; >> + pa_bluetooth_adapter *a = pa_xnew(pa_bluetooth_adapter, 1); >> + >> + dbus_message_iter_get_basic(&variant_i, &value); >> + a->path = pa_xstrdup(adapter); >> + a->address = pa_xstrdup(value); >> + pa_hashmap_put(y->adapters, a->path, a); > > This leaks pa_bluetooth_adapter objects if bluetoothd sends duplicate > addresses. pa_bluetooth_adapter creation should be handled in the same > way as pa_bluetooth_device creation. > Yes, you're right, I'm changing that for v3. -- Jo?o Paulo Rechi Vita http://about.me/jprvita