2010-08-17 Yuta Kitamura <yutak@chromium.org>
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Aug 2010 11:54:39 +0000 (11:54 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Aug 2010 11:54:39 +0000 (11:54 +0000)
        Reviewed by Shinichiro Hamaji.

        Avoid uninitialized memory read in StringImpl::find().

        REGRESSION(r65468): Crashes in StringImpl::find
        https://bugs.webkit.org/show_bug.cgi?id=44099

        * wtf/text/StringImpl.cpp:
        (WTF::StringImpl::find):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@65493 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/wtf/text/StringImpl.cpp

index 2e11c2c..0d6ac10 100644 (file)
@@ -1,3 +1,15 @@
+2010-08-17  Yuta Kitamura  <yutak@chromium.org>
+
+        Reviewed by Shinichiro Hamaji.
+
+        Avoid uninitialized memory read in StringImpl::find().
+
+        REGRESSION(r65468): Crashes in StringImpl::find
+        https://bugs.webkit.org/show_bug.cgi?id=44099
+
+        * wtf/text/StringImpl.cpp:
+        (WTF::StringImpl::find):
+
 2010-08-16  Gavin Barraclough  <barraclough@apple.com>
 
         Rubber stamped by Sam Weinig
index a944470..ed00a29 100644 (file)
@@ -542,12 +542,14 @@ size_t StringImpl::find(const char* matchString, unsigned index)
         matchHash += matchCharacters[i];
     }
 
-    for (unsigned i = 0; i <= delta; ++i) {
+    for (unsigned i = 0; i < delta; ++i) {
         if (searchHash == matchHash && equal(searchCharacters + i, matchString, matchLength))
             return index + i;
         searchHash += searchCharacters[i + matchLength];
         searchHash -= searchCharacters[i];
     }
+    if (searchHash == matchHash && equal(searchCharacters + delta, matchString, matchLength))
+        return index + delta;
     return notFound;
 }