On Thu, Sep 26, 2013 at 2:11 PM, Jo?o Paulo Rechi Vita <jprvita at gmail.com> wrote: > On Wed, Sep 25, 2013 at 7:33 AM, Tanu Kaskinen > <tanu.kaskinen at linux.intel.com> wrote: >> 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. >> > > Ok, that's a problem in pa_bluetooth_discovery_get_device_by_address() > then. Fixing it leaves no other problems related to the adapter being > invalid, right? > Just to be more explicit, by fixing pa_bluetooth_discovery_get_device_by_address() I mean checking validity of d->address && d->adapter && d->adapter->address before calling pa_streq(). -- Jo?o Paulo Rechi Vita http://about.me/jprvita