Title: [92914] trunk/Source/WebKit2
Revision
92914
Author
[email protected]
Date
2011-08-11 21:16:55 -0700 (Thu, 11 Aug 2011)

Log Message

VectorArgumentCoder doesn't encode/decode enough data for more than one byte vector elements
https://bugs.webkit.org/show_bug.cgi?id=66109

Patch by Viatcheslav Ostapenko <[email protected]> on 2011-08-11
Reviewed by Anders Carlsson.

Multiply vector size by element size in encode/decode to get correct byte size of vector data.

* Platform/CoreIPC/ArgumentCoders.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (92913 => 92914)


--- trunk/Source/WebKit2/ChangeLog	2011-08-12 04:11:41 UTC (rev 92913)
+++ trunk/Source/WebKit2/ChangeLog	2011-08-12 04:16:55 UTC (rev 92914)
@@ -1,3 +1,14 @@
+2011-08-11  Viatcheslav Ostapenko  <[email protected]>
+
+        VectorArgumentCoder doesn't encode/decode enough data for more than one byte vector elements
+        https://bugs.webkit.org/show_bug.cgi?id=66109
+
+        Reviewed by Anders Carlsson.
+
+        Multiply vector size by element size in encode/decode to get correct byte size of vector data.
+
+        * Platform/CoreIPC/ArgumentCoders.h:
+
 2011-08-11  Nico Weber  <[email protected]>
 
         Remove incorrect comment about m_wheelEventHandlerCount

Modified: trunk/Source/WebKit2/Platform/CoreIPC/ArgumentCoders.h (92913 => 92914)


--- trunk/Source/WebKit2/Platform/CoreIPC/ArgumentCoders.h	2011-08-12 04:11:41 UTC (rev 92913)
+++ trunk/Source/WebKit2/Platform/CoreIPC/ArgumentCoders.h	2011-08-12 04:16:55 UTC (rev 92914)
@@ -107,7 +107,7 @@
     static void encode(ArgumentEncoder* encoder, const Vector<T>& vector)
     {
         encoder->encodeUInt64(vector.size());
-        encoder->encodeFixedLengthData(reinterpret_cast<const uint8_t*>(vector.data()), vector.size(), __alignof(T));
+        encoder->encodeFixedLengthData(reinterpret_cast<const uint8_t*>(vector.data()), vector.size() * sizeof(T), __alignof(T));
     }
     
     static bool decode(ArgumentDecoder* decoder, Vector<T>& vector)
@@ -127,7 +127,7 @@
         Vector<T> temp;
         temp.resize(size);
 
-        decoder->decodeFixedLengthData(reinterpret_cast<uint8_t*>(temp.data()), size, __alignof(T));
+        decoder->decodeFixedLengthData(reinterpret_cast<uint8_t*>(temp.data()), size * sizeof(T), __alignof(T));
 
         vector.swap(temp);
         return true;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to