Fix a buffer overrun and a leak introduced in r29098
authoraroben@apple.com <aroben@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Jan 2008 15:34:34 +0000 (15:34 +0000)
committeraroben@apple.com <aroben@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Jan 2008 15:34:34 +0000 (15:34 +0000)
         Reviewed by Mark.

         * platform/text/StringImpl.cpp:
         (WebCore::StringImpl::StringImpl): Only allocate one buffer, and make
         it be big enough to hold the string contents plus the null terminator.

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

WebCore/ChangeLog
WebCore/platform/text/StringImpl.cpp

index cf0e9ec1cea33161e32822f4919f1829df22fc80..fb284aba8ddbc6c631c4aec1ba7184dfd9742419 100644 (file)
@@ -1,3 +1,13 @@
+2008-01-03  Adam Roben  <aroben@apple.com>
+
+        Fix a buffer overrun and a leak introduced in r29098
+
+        Reviewed by Mark.
+
+        * platform/text/StringImpl.cpp:
+        (WebCore::StringImpl::StringImpl): Only allocate one buffer, and make
+        it be big enough to hold the string contents plus the null terminator.
+
 2008-01-03  Simon Hausmann  <hausmann@webkit.org>
 
         Reviewed by Lars.
index 32bfe792dea9634faddd46564be9a30ea5b99ea9..8cae571d143878ea63a66d1dc233cb4066a51f32 100644 (file)
@@ -84,12 +84,11 @@ StringImpl::StringImpl(const UChar* str, unsigned len)
 
 StringImpl::StringImpl(const StringImpl& str, WithTerminatingNullCharacter)
     : m_length(str.m_length)
-    , m_data(newUCharVector(str.m_length + 1))
     , m_hash(str.m_hash)
     , m_inTable(false)
     , m_hasTerminatingNullCharacter(true)
 {
-    UChar* data = newUCharVector(str.m_length);
+    UChar* data = newUCharVector(str.m_length + 1);
     memcpy(data, str.m_data, str.m_length * sizeof(UChar));
     data[str.m_length] = 0;
     m_data = data;