summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@qt.io>2019-02-12 09:12:00 +0100
committerAlex Blasche <alexander.blasche@qt.io>2019-02-15 12:39:39 +0000
commit1b19d7981610c2a9587544da654b4ca783e1bf6b (patch)
tree2f1bdae17b61c04f7b521e097ad60f861ab99383
parentf5313bc82882cd5f211726f185dc77d106f41a49 (diff)
Ensure signed int are written in base 10 notation
The code was converting signed ints/chars/shorts to hex notation without prepanding the '0x'. This led to Bluez reading the value as base 10 value and created the problem that values containing letters were improperly parsed. Fixes: QTBUG-73330 Change-Id: I9407a82495761b2e541e13b282ad6ccdb7cdd84a Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
-rw-r--r--src/bluetooth/qbluetoothserviceinfo_bluez.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/bluetooth/qbluetoothserviceinfo_bluez.cpp b/src/bluetooth/qbluetoothserviceinfo_bluez.cpp
index f719779a..d91367c4 100644
--- a/src/bluetooth/qbluetoothserviceinfo_bluez.cpp
+++ b/src/bluetooth/qbluetoothserviceinfo_bluez.cpp
@@ -85,17 +85,17 @@ static void writeAttribute(QXmlStreamWriter *stream, const QVariant &attribute)
case QMetaType::Char:
stream->writeEmptyElement(QStringLiteral("int8"));
stream->writeAttribute(QStringLiteral("value"),
- QString::number(attribute.value<uchar>(), 16));
+ QString::number(attribute.value<qint8>()));
break;
case QMetaType::Short:
stream->writeEmptyElement(QStringLiteral("int16"));
stream->writeAttribute(QStringLiteral("value"),
- QString::number(attribute.value<qint16>(), 16));
+ QString::number(attribute.value<qint16>()));
break;
case QMetaType::Int:
stream->writeEmptyElement(QStringLiteral("int32"));
stream->writeAttribute(QStringLiteral("value"),
- QString::number(attribute.value<qint32>(), 16));
+ QString::number(attribute.value<qint32>()));
break;
case QMetaType::QByteArray:
stream->writeEmptyElement(QStringLiteral("text"));