OSDN Git Service

core: don't set BR/EDR support when no flags present
authorScott James Remnant <scott@netsplit.com>
Thu, 3 Apr 2014 22:27:33 +0000 (15:27 -0700)
committerJohan Hedberg <johan.hedberg@intel.com>
Fri, 4 Apr 2014 07:19:49 +0000 (10:19 +0300)
The logic for setting the BR/EDR supported flag checked for the
non-presence of the BR/EDR Unsupported flag without checking whether
any flags were present at all.

This meant all LE-only devices that returned Scan Response Data were
being marked as supporting BR/EDR, since the flag was only set in the
initial AD and not the SRD.

src/adapter.c

index e396a3d..b8b9a9c 100644 (file)
@@ -4342,7 +4342,8 @@ static void update_found_devices(struct btd_adapter *adapter,
 
        device_update_last_seen(dev, bdaddr_type);
 
-       if (bdaddr_type != BDADDR_BREDR && !(eir_data.flags & EIR_BREDR_UNSUP))
+       if (bdaddr_type != BDADDR_BREDR && eir_data.flags &&
+                                       !(eir_data.flags & EIR_BREDR_UNSUP))
                device_set_bredr_support(dev, true);
 
        if (eir_data.name != NULL && eir_data.name_complete)