From 21e77772309df0f2c3fc15f16f9a95214d13f91c Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 1 Dec 2020 16:30:54 +0100 Subject: [PATCH] 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 --- qmake/library/proitems.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/qmake/library/proitems.h b/qmake/library/proitems.h index 6c1d48944ad..f7eef399881 100644 --- a/qmake/library/proitems.h +++ b/qmake/library/proitems.h @@ -233,6 +233,8 @@ template <> struct QConcatenable : 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 : 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; }