Fix potential buffer overrun.
authorMartin Jones <martin.jones@nokia.com>
Mon, 28 May 2012 05:32:11 +0000 (15:32 +1000)
committerQt by Nokia <qt-info@nokia.com>
Tue, 29 May 2012 02:37:01 +0000 (04:37 +0200)
Found by static analysis.  operator[]() accepts index up to
QVariant::UserType-1 but only QVariant::UserType-1 were allocated.

Change-Id: I0691fe268e3ba029441e43bdfcd191400ea21f38
Reviewed-by: Matthew Vogt <matthew.vogt@nokia.com>
src/qml/qml/qqmlvaluetype.cpp
src/qml/qml/qqmlvaluetype_p.h

index 4086cae..b96c2f6 100644 (file)
@@ -49,13 +49,13 @@ QT_BEGIN_NAMESPACE
 
 QQmlValueTypeFactory::QQmlValueTypeFactory()
 {
-    for (unsigned int ii = 0; ii < (QVariant::UserType - 1); ++ii)
+    for (unsigned int ii = 0; ii < QVariant::UserType; ++ii)
         valueTypes[ii] = 0;
 }
 
 QQmlValueTypeFactory::~QQmlValueTypeFactory()
 {
-    for (unsigned int ii = 0; ii < (QVariant::UserType - 1); ++ii)
+    for (unsigned int ii = 0; ii < QVariant::UserType; ++ii)
         delete valueTypes[ii];
 }
 
index 6641a40..776847a 100644 (file)
@@ -164,7 +164,7 @@ public:
     }
 
 private:
-    mutable QQmlValueType *valueTypes[QVariant::UserType - 1];
+    mutable QQmlValueType *valueTypes[QVariant::UserType];
 };
 
 class Q_QML_PRIVATE_EXPORT QQmlPointFValueType : public QQmlValueTypeBase<QPointF>