summaryrefslogtreecommitdiffstats
path: root/qmake/library
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2020-12-01 16:30:54 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-12-02 13:30:22 +0000
commit96ea154b0fb6894a9e76357bd7047c648751849b (patch)
tree0a1c426b0cab532bc213f5ac8af0eb3b7170d66e /qmake/library
parent676b912cf93a2902b7feca2f121f10dedb9d9b71 (diff)
Fix undefined behavior in ProString/ProKey::appendTo
We must not pass null pointers to memcpy. Fixes: QTBUG-88780 Change-Id: Ic1d77b4672310a3f6d0d4fbee5f2889e3e4d219d Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 21e77772309df0f2c3fc15f16f9a95214d13f91c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'qmake/library')
-rw-r--r--qmake/library/proitems.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/qmake/library/proitems.h b/qmake/library/proitems.h
index 590b976937..b37b1247c8 100644
--- a/qmake/library/proitems.h
+++ b/qmake/library/proitems.h
@@ -233,6 +233,8 @@ template <> struct QConcatenable<ProString> : private QAbstractConcatenable
static inline void appendTo(const ProString &a, QChar *&out)
{
const auto n = a.size();
+ if (!n)
+ return;
memcpy(out, a.toQStringView().data(), sizeof(QChar) * n);
out += n;
}
@@ -247,6 +249,8 @@ template <> struct QConcatenable<ProKey> : private QAbstractConcatenable
static inline void appendTo(const ProKey &a, QChar *&out)
{
const auto n = a.size();
+ if (!n)
+ return;
memcpy(out, a.toQStringView().data(), sizeof(QChar) * n);
out += n;
}