summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAnton Kudryavtsev <anton.kudryavtsev@corp.mail.ru>2018-10-15 20:08:47 +0300
committerAnton Kudryavtsev <antkudr@mail.ru>2018-10-17 08:48:13 +0000
commitaa633ff276e593af227d7c4a84db230382185490 (patch)
tree0ee14763cb229072d50e05f63c239f01d6b32a8a /src
parent7bf4ebfb26e571a582fd4a19edec9aef1aef46cb (diff)
QMetaEnum: fix UB
Check ptr before usage. Change-Id: Iac757a2e260b237d837318932cc0b5896c6e04c2 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/kernel/qmetaobject.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp
index b647f69978..c642cd07f2 100644
--- a/src/corelib/kernel/qmetaobject.cpp
+++ b/src/corelib/kernel/qmetaobject.cpp
@@ -2652,8 +2652,10 @@ int QMetaEnum::value(int index) const
*/
bool QMetaEnum::isFlag() const
{
+ if (!mobj)
+ return false;
const int offset = priv(mobj->d.data)->revision >= 8 ? 2 : 1;
- return mobj && mobj->d.data[handle + offset] & EnumIsFlag;
+ return mobj->d.data[handle + offset] & EnumIsFlag;
}
/*!
@@ -2664,8 +2666,10 @@ bool QMetaEnum::isFlag() const
*/
bool QMetaEnum::isScoped() const
{
+ if (!mobj)
+ return false;
const int offset = priv(mobj->d.data)->revision >= 8 ? 2 : 1;
- return mobj && mobj->d.data[handle + offset] & EnumIsScoped;
+ return mobj->d.data[handle + offset] & EnumIsScoped;
}
/*!