summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/debuggerprotocol.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2020-09-23 17:24:46 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2020-09-23 16:09:42 +0000
commitf87a7bebe9e67b48a3be4a7447bfb87e419c68f6 (patch)
tree8384a399e53ec6d000e06dca146b2967805130d5 /src/plugins/debugger/debuggerprotocol.cpp
parent822aa7b242cf50ee1c6395cdfa6e6f618e30bd5e (diff)
downloadqt-creator-f87a7bebe9e67b48a3be4a7447bfb87e419c68f6.tar.gz
Debugger: Make decoding hex-encoded floats more robust
Apparently, the values are sometimes transmitted without leading zeroes, so insert them if they are missing. This fixes a crash in the QV4 dumper test. Change-Id: I7434c9c090524eecbf5c50e69ad49f5a6ca81e1a Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/debugger/debuggerprotocol.cpp')
-rw-r--r--src/plugins/debugger/debuggerprotocol.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/plugins/debugger/debuggerprotocol.cpp b/src/plugins/debugger/debuggerprotocol.cpp
index 71f9f4233d..ccd834636c 100644
--- a/src/plugins/debugger/debuggerprotocol.cpp
+++ b/src/plugins/debugger/debuggerprotocol.cpp
@@ -666,7 +666,9 @@ QString decodeData(const QString &ba, const QString &encoding)
qDebug("not implemented"); // Only used in Arrays, see watchdata.cpp
return QString();
case DebuggerEncoding::HexEncodedFloat: {
- const QByteArray s = QByteArray::fromHex(ba.toUtf8());
+ QByteArray s = QByteArray::fromHex(ba.toUtf8());
+ if (s.size() < enc.size)
+ s.prepend(QByteArray(enc.size - s.size(), '\0'));
if (enc.size == 4) {
union { char c[4]; float f; } u = {{s[3], s[2], s[1], s[0]}};
return QString::number(u.f);