SharedBuffer::copy is not computing the buffer size correctly when having m_dataArray
authoryouenn.fablet@crf.canon.fr <youenn.fablet@crf.canon.fr@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 28 Apr 2015 17:45:27 +0000 (17:45 +0000)
committeryouenn.fablet@crf.canon.fr <youenn.fablet@crf.canon.fr@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 28 Apr 2015 17:45:27 +0000 (17:45 +0000)
https://bugs.webkit.org/show_bug.cgi?id=144321

Reviewed by Darin Adler.

Patch correctness covered by existing tests.

* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::copy): Direct appending to m_dataArray and not using append method as this method updates the SharedBuffer size.

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

Source/WebCore/ChangeLog
Source/WebCore/platform/SharedBuffer.cpp

index fd82330..f23f5d6 100644 (file)
@@ -1,3 +1,15 @@
+2015-04-28  Youenn Fablet  <youenn.fablet@crf.canon.fr>
+
+        SharedBuffer::copy is not computing the buffer size correctly when having m_dataArray
+        https://bugs.webkit.org/show_bug.cgi?id=144321
+
+        Reviewed by Darin Adler.
+
+        Patch correctness covered by existing tests.
+
+        * platform/SharedBuffer.cpp:
+        (WebCore::SharedBuffer::copy): Direct appending to m_dataArray and not using append method as this method updates the SharedBuffer size.
+
 2015-04-28  Per Arne Vollan  <peavo@outlook.com>
 
         [Curl] Memory leak.
index ae6eee5..afbb653 100644 (file)
@@ -244,8 +244,9 @@ PassRefPtr<SharedBuffer> SharedBuffer::copy() const
         clone->m_buffer->data.append(segment, segmentSize);
 #else
     for (auto& data : m_dataArray)
-        clone->append(data.get());
+        clone->m_dataArray.append(data.get());
 #endif
+    ASSERT(clone->size() == size());
 
     return clone.release();
 }