summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@theqtcompany.com>2016-02-10 11:07:05 +0100
committerAlex Blasche <alexander.blasche@theqtcompany.com>2016-02-11 06:42:22 +0000
commit40a91836221740cf9391ccfd36b92c368db59a8f (patch)
tree9e144c2647ee69844d76f79335bd0551ff64647a
parent02ebea91bcf0e212b3226a761a491625f671e73b (diff)
Fix undefined behavior in AddressInfo's default ctor.
The AddressInfo::type member was not properly initialised. Change-Id: I79c8e1d00d4cb03e3d073a23bb4dbf6b9d510b7c Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
-rw-r--r--src/bluetooth/qlowenergyadvertisingparameters.cpp12
-rw-r--r--src/bluetooth/qlowenergyadvertisingparameters.h2
-rw-r--r--tests/auto/qlowenergycontroller-gattserver/test/tst_qlowenergycontroller-gattserver.cpp5
3 files changed, 16 insertions, 3 deletions
diff --git a/src/bluetooth/qlowenergyadvertisingparameters.cpp b/src/bluetooth/qlowenergyadvertisingparameters.cpp
index 46a09c05..31111da6 100644
--- a/src/bluetooth/qlowenergyadvertisingparameters.cpp
+++ b/src/bluetooth/qlowenergyadvertisingparameters.cpp
@@ -132,12 +132,16 @@ public:
/*!
\variable QLowEnergyAdvertisingParameters::AddressInfo::address
- The Bluetooth address of a remote address.
+
+ This is the Bluetooth address of a remote device.
*/
/*!
\variable QLowEnergyAdvertisingParameters::AddressInfo::type
- The type of the address (public or private).
+
+ The type of the address (public or private).
+ The \l AddressInfo default constructor initialises this value to
+ \l QLowEnergyController::PublicAddress.
*/
/*!
@@ -151,6 +155,10 @@ public:
\fn QLowEnergyAdvertisingParameters::AddressInfo::AddressInfo()
Constructs a default constructed AddressInfo instance.
+
+ By default the \l AddressInfo::type member is set to
+ \l QLowEnergyController::PublicAddress and the \l AddressInfo::address
+ member has a null address.
*/
/*!
diff --git a/src/bluetooth/qlowenergyadvertisingparameters.h b/src/bluetooth/qlowenergyadvertisingparameters.h
index 23e918a2..547e5798 100644
--- a/src/bluetooth/qlowenergyadvertisingparameters.h
+++ b/src/bluetooth/qlowenergyadvertisingparameters.h
@@ -68,7 +68,7 @@ public:
struct AddressInfo {
AddressInfo(const QBluetoothAddress &addr, QLowEnergyController::RemoteAddressType t)
: address(addr), type(t) {}
- AddressInfo() {}
+ AddressInfo() : type(QLowEnergyController::PublicAddress) {}
QBluetoothAddress address;
QLowEnergyController::RemoteAddressType type;
diff --git a/tests/auto/qlowenergycontroller-gattserver/test/tst_qlowenergycontroller-gattserver.cpp b/tests/auto/qlowenergycontroller-gattserver/test/tst_qlowenergycontroller-gattserver.cpp
index 8b11e5a7..f487db00 100644
--- a/tests/auto/qlowenergycontroller-gattserver/test/tst_qlowenergycontroller-gattserver.cpp
+++ b/tests/auto/qlowenergycontroller-gattserver/test/tst_qlowenergycontroller-gattserver.cpp
@@ -114,6 +114,11 @@ void TestQLowEnergyControllerGattServer::advertisingParameters()
QCOMPARE(params.whiteList(), whiteList);
QCOMPARE(params.filterPolicy(), QLowEnergyAdvertisingParameters::UseWhiteListForConnecting);
QVERIFY(params != QLowEnergyAdvertisingParameters());
+
+ // verify default ctor
+ QLowEnergyAdvertisingParameters::AddressInfo info;
+ QVERIFY(info.address == QBluetoothAddress());
+ QVERIFY(info.type == QLowEnergyController::PublicAddress);
}
void TestQLowEnergyControllerGattServer::advertisingData()