OSDN Git Service

Cherry-pick security fix in WebKit change 62134
authorSteve Block <steveblock@google.com>
Thu, 9 Sep 2010 10:53:17 +0000 (11:53 +0100)
committerSteve Block <steveblock@google.com>
Thu, 9 Sep 2010 11:03:51 +0000 (12:03 +0100)
See http://trac.webkit.org/changeset/62134

Bug: 2986936
Change-Id: Ie5c1698e58b9183519aae5dfa8cf5fb8f158feb1

WebCore/dom/CharacterData.cpp
WebCore/dom/Text.cpp

index 3c3dc37..cb12184 100644 (file)
@@ -46,15 +46,15 @@ void CharacterData::setData(const String& data, ExceptionCode&)
     int oldLength = length();
     RefPtr<StringImpl> oldStr = m_data;
     m_data = dataImpl;
-    
+
     if ((!renderer() || !rendererIsNeeded(renderer()->style())) && attached()) {
         detach();
         attach();
     } else if (renderer())
-        toRenderText(renderer())->setText(m_data);
-    
+        toRenderText(renderer())->setTextWithOffset(m_data, 0, oldLength);
+
     dispatchModifiedEvent(oldStr.get());
-    
+
     document()->textRemoved(this, 0, oldLength);
 }
 
index 1ce074a..229fa88 100644 (file)
@@ -77,7 +77,7 @@ PassRefPtr<Text> Text::splitText(unsigned offset, ExceptionCode& ec)
         document()->textNodeSplit(this);
 
     if (renderer())
-        toRenderText(renderer())->setText(dataImpl());
+        toRenderText(renderer())->setTextWithOffset(dataImpl(), 0, oldStr->length());
 
     return newText.release();
 }