On Tue, 2013-09-24 at 19:19 -0300, Jo?o Paulo Rechi Vita wrote: > On Sun, Sep 22, 2013 at 2:38 AM, Tanu Kaskinen > <tanu.kaskinen at linux.intel.com> wrote: > > On Sat, 2013-09-21 at 16:12 -0500, Jo?o Paulo Rechi Vita wrote: > >> On Sat, Sep 21, 2013 at 6:12 AM, Tanu Kaskinen > >> <tanu.kaskinen at linux.intel.com> wrote: > >> > On Wed, 2013-09-18 at 16:17 -0500, jprvita at gmail.com wrote: > >> >> static void parse_interfaces_and_properties(pa_bluetooth_discovery *y, DBusMessageIter *dict_i) { > >> >> DBusMessageIter element_i; > >> >> const char *path; > >> >> @@ -415,7 +474,8 @@ static void parse_interfaces_and_properties(pa_bluetooth_discovery *y, DBusMessa > >> >> > >> >> pa_log_debug("Adapter %s found", path); > >> >> > >> >> - /* TODO: parse adapter properties and register endpoints */ > >> >> + parse_adapter_properties(a, &iface_i, false); > >> > > >> > If parsing fails, or if the Address property is missing, the adapter > >> > should be marked as invalid. > >> > > >> > >> We don't need to add a adapter_info_valid field, just not registering > >> as an endpoint with that adapter should be enough. > > > > I don't think that's enough. Devices can point to adapters, so devices > > that point to invalid adapters should be marked as invalid too. I think > > an info_valid field also for adapters is the way to go. > > > > There is no problem if devices point to invalid adapters, since we > have not registered as endpoints we'll never receive transports for > these devices, so nothing will happen. pa_bluetooth_discovery_get_device_by_address() will crash if a device points to an adapter with NULL address. Actually, marking a device invalid if the adapter is invalid isn't sufficient to fix pa_bluetooth_discovery_get_device_by_address(). The function should check d->device_info_valid before trying to access d->adapter. -- Tanu