diff options
author | Robert Loehning <robert.loehning@qt.io> | 2020-08-27 20:06:27 +0200 |
---|---|---|
committer | Robert Loehning <robert.loehning@qt.io> | 2020-10-08 18:24:09 +0200 |
commit | 4ef7856603ddd19c391c25ef9f6385de23039c20 (patch) | |
tree | 44ef326b3dd8d209834add7b2ef28a986f91331b | |
parent | 5508942081aa5f48ef5cc7264e29e4418e3cde6a (diff) |
Avoid overflows in variantHash()
Fixes: oss-fuzz-24702
Change-Id: I876bac9e2c276693e59802dfeeea2229a873ee34
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit e0da5159dc4f53fcf725ef6e3aa4e04862bcbae0)
-rw-r--r-- | src/gui/text/qtextformat.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp index 919cdf3ff1..c77c78dbe7 100644 --- a/src/gui/text/qtextformat.cpp +++ b/src/gui/text/qtextformat.cpp @@ -290,13 +290,13 @@ static inline uint variantHash(const QVariant &variant) switch (variant.userType()) { // sorted by occurrence frequency case QVariant::String: return qHash(variant.toString()); case QVariant::Double: return qHash(variant.toDouble()); - case QVariant::Int: return 0x811890 + variant.toInt(); + case QVariant::Int: return 0x811890U + variant.toInt(); case QVariant::Brush: return 0x01010101 + hash(qvariant_cast<QBrush>(variant)); case QVariant::Bool: return 0x371818 + variant.toBool(); case QVariant::Pen: return 0x02020202 + hash(qvariant_cast<QPen>(variant)); case QVariant::List: - return 0x8377 + qvariant_cast<QVariantList>(variant).count(); + return 0x8377U + qvariant_cast<QVariantList>(variant).count(); case QVariant::Color: return hash(qvariant_cast<QColor>(variant)); case QVariant::TextLength: return 0x377 + hash(qvariant_cast<QTextLength>(variant).rawValue()); |