From b0938cb6c1fa29ec2d2a4fb9273e515cd0d6c08e Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sun, 17 Dec 2017 11:42:41 +0100 Subject: [PATCH] QGestureManager: fix UB (invalid pointer comparison) Comparing pointers with op< that do not point into the same array is UB. Fix, in the usual way, by using std::less. Change-Id: Id2c957557719887b2016632d683dbab8af07b34c Reviewed-by: Thiago Macieira --- src/widgets/kernel/qgesturemanager_p.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/widgets/kernel/qgesturemanager_p.h b/src/widgets/kernel/qgesturemanager_p.h index e57652afbac..3df80bab55c 100644 --- a/src/widgets/kernel/qgesturemanager_p.h +++ b/src/widgets/kernel/qgesturemanager_p.h @@ -59,6 +59,8 @@ #ifndef QT_NO_GESTURES +#include + QT_BEGIN_NAMESPACE class QBasicTimer; @@ -112,7 +114,7 @@ private: ObjectGesture(QObject *o, const Qt::GestureType &g) : object(o), gesture(g) { } inline bool operator<(const ObjectGesture &rhs) const { - if (object < rhs.object) + if (std::less{}(object, rhs.object)) return true; if (object == rhs.object) return gesture < rhs.gesture;