[pulseaudio-discuss] [PATCH v4 15/41] bluetooth: Parse BlueZ 5 adapter properties

João Paulo Rechi Vita jprvita at gmail.com
Thu Sep 26 10:51:03 PDT 2013


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


More information about the pulseaudio-discuss mailing list