diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index 10d3441d2c2b763ac5d78b449aaf135c428699d8..983d1213d93a516f956b0af134b2156ceccf741c 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -10005,6 +10005,9 @@ static inline int qt_find_latin1_string(const QChar *haystack, int size,
                                         QLatin1String needle,
                                         int from, Qt::CaseSensitivity cs)
 {
+    if (size < needle.size())
+        return -1;
+
     const char *latin1 = needle.latin1();
     int len = needle.size();
     QVarLengthArray<ushort> s(len);