summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2014-12-06 23:43:37 +0100
committerJavier <dev.git@javispedro.com>2014-12-06 23:43:37 +0100
commit9aeb1bf31ad9ff5979f598f5925cfd25f544ba34 (patch)
tree84ff214b9d8cd2cf88a4af0d530cacf42e38bfce
parent5499dc58d09f07081c41b8e4dead810a82137939 (diff)
ensure packed strings are always null-terminated
-rw-r--r--daemon/packer.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/daemon/packer.cpp b/daemon/packer.cpp
index 4dabf96..0cc71f6 100644
--- a/daemon/packer.cpp
+++ b/daemon/packer.cpp
@@ -97,6 +97,10 @@ void Packer::writeDict(const QMap<int, QVariant> &d)
case QMetaType::QUrl:
{
QByteArray s = it.value().toString().toUtf8();
+ if (s.isEmpty() || s[s.size() - 1] != '\0') {
+ // Add null terminator if it doesn't have one
+ s.append('\0');
+ }
writeLE<quint8>(WatchConnector::typeSTRING);
writeLE<quint16>(s.size());
_buf->append(s);