diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2020-12-01 16:30:54 +0100 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2020-12-02 10:21:45 +0100 |
commit | 21e77772309df0f2c3fc15f16f9a95214d13f91c (patch) | |
tree | 0d131d5f33b2185b85a249dff99cfd403bc5e5ba /qmake/library | |
parent | c19695ab953c979f15bbc72c4f4a453e9a114cf6 (diff) | |
download | qtbase-21e77772309df0f2c3fc15f16f9a95214d13f91c.tar.gz |
Fix undefined behavior in ProString/ProKey::appendTo
We must not pass null pointers to memcpy.
Pick-to: 6.0
Fixes: QTBUG-88780
Change-Id: Ic1d77b4672310a3f6d0d4fbee5f2889e3e4d219d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'qmake/library')
-rw-r--r-- | qmake/library/proitems.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/qmake/library/proitems.h b/qmake/library/proitems.h index 6c1d48944a..f7eef39988 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; } |