Title: [176782] tags/Safari-601.1.11/Source/WebKit2

Diff

Modified: tags/Safari-601.1.11/Source/WebKit2/ChangeLog (176781 => 176782)


--- tags/Safari-601.1.11/Source/WebKit2/ChangeLog	2014-12-04 03:05:27 UTC (rev 176781)
+++ tags/Safari-601.1.11/Source/WebKit2/ChangeLog	2014-12-04 03:08:59 UTC (rev 176782)
@@ -1,3 +1,24 @@
+2014-12-03  Babak Shafiei  <[email protected]>
+
+        Merge r176762.
+
+    2014-12-03  Commit Queue  <[email protected]>
+
+            Unreviewed, rolling out r176452 and r176559.
+            https://bugs.webkit.org/show_bug.cgi?id=139239
+
+            Broke iOS (Requested by andersca on #webkit).
+
+            Reverted changesets:
+
+            "Remove alignment code from IPC coders"
+            https://bugs.webkit.org/show_bug.cgi?id=138963
+            http://trac.webkit.org/changeset/176452
+
+            "[WK2] SecComp buildfix after r176452"
+            https://bugs.webkit.org/show_bug.cgi?id=139081
+            http://trac.webkit.org/changeset/176559
+
 2014-12-03  Anders Carlsson  <[email protected]>
 
         Use an @autoreleasepool instead of NSAutoreleasePool.

Modified: tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentCoders.cpp (176781 => 176782)


--- tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentCoders.cpp	2014-12-04 03:05:27 UTC (rev 176781)
+++ tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentCoders.cpp	2014-12-04 03:08:59 UTC (rev 176782)
@@ -57,7 +57,7 @@
 
     uint32_t length = string.length();
     encoder << length;
-    encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(string.data()), length);
+    encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(string.data()), length, 1);
 }
 
 bool ArgumentCoder<CString>::decode(ArgumentDecoder& decoder, CString& result)
@@ -80,7 +80,7 @@
 
     char* buffer;
     CString string = CString::newUninitialized(length, buffer);
-    if (!decoder.decodeFixedLengthData(reinterpret_cast<uint8_t*>(buffer), length))
+    if (!decoder.decodeFixedLengthData(reinterpret_cast<uint8_t*>(buffer), length, 1))
         return false;
 
     result = string;
@@ -102,9 +102,9 @@
     encoder << length << is8Bit;
 
     if (is8Bit)
-        encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(string.characters8()), length * sizeof(LChar));
+        encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(string.characters8()), length * sizeof(LChar), alignof(LChar));
     else
-        encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(string.characters16()), length * sizeof(UChar));
+        encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(string.characters16()), length * sizeof(UChar), alignof(UChar));
 }
 
 template <typename CharacterType>
@@ -118,7 +118,7 @@
     
     CharacterType* buffer;
     String string = String::createUninitialized(length, buffer);
-    if (!decoder.decodeFixedLengthData(reinterpret_cast<uint8_t*>(buffer), length * sizeof(CharacterType)))
+    if (!decoder.decodeFixedLengthData(reinterpret_cast<uint8_t*>(buffer), length * sizeof(CharacterType), alignof(CharacterType)))
         return false;
     
     result = string;

Modified: tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentCoders.h (176781 => 176782)


--- tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentCoders.h	2014-12-04 03:05:27 UTC (rev 176781)
+++ tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentCoders.h	2014-12-04 03:08:59 UTC (rev 176782)
@@ -41,12 +41,12 @@
 template<typename T> struct SimpleArgumentCoder {
     static void encode(ArgumentEncoder& encoder, const T& t)
     {
-        encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(&t), sizeof(T));
+        encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(&t), sizeof(T), alignof(T));
     }
 
     static bool decode(ArgumentDecoder& decoder, T& t)
     {
-        return decoder.decodeFixedLengthData(reinterpret_cast<uint8_t*>(&t), sizeof(T));
+        return decoder.decodeFixedLengthData(reinterpret_cast<uint8_t*>(&t), sizeof(T), alignof(T));
     }
 };
 
@@ -178,7 +178,7 @@
     static void encode(ArgumentEncoder& encoder, const Vector<T, inlineCapacity>& vector)
     {
         encoder << static_cast<uint64_t>(vector.size());
-        encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(vector.data()), vector.size() * sizeof(T));
+        encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(vector.data()), vector.size() * sizeof(T), alignof(T));
     }
     
     static bool decode(ArgumentDecoder& decoder, Vector<T, inlineCapacity>& vector)
@@ -198,7 +198,7 @@
         Vector<T, inlineCapacity> temp;
         temp.resize(size);
 
-        decoder.decodeFixedLengthData(reinterpret_cast<uint8_t*>(temp.data()), size * sizeof(T));
+        decoder.decodeFixedLengthData(reinterpret_cast<uint8_t*>(temp.data()), size * sizeof(T), alignof(T));
 
         vector.swap(temp);
         return true;

Modified: tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentDecoder.cpp (176781 => 176782)


--- tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentDecoder.cpp	2014-12-04 03:05:27 UTC (rev 176781)
+++ tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentDecoder.cpp	2014-12-04 03:08:59 UTC (rev 176782)
@@ -56,30 +56,57 @@
 #endif
 }
 
+static inline uint8_t* roundUpToAlignment(uint8_t* ptr, unsigned alignment)
+{
+    // Assert that the alignment is a power of 2.
+    ASSERT(alignment && !(alignment & (alignment - 1)));
+
+    uintptr_t alignmentMask = alignment - 1;
+    return reinterpret_cast<uint8_t*>((reinterpret_cast<uintptr_t>(ptr) + alignmentMask) & ~alignmentMask);
+}
+
 void ArgumentDecoder::initialize(const uint8_t* buffer, size_t bufferSize)
 {
     m_buffer = static_cast<uint8_t*>(malloc(bufferSize));
 
     ASSERT(!(reinterpret_cast<uintptr_t>(m_buffer) % alignof(uint64_t)));
 
-    m_bufferPosition = m_buffer;
+    m_bufferPos = m_buffer;
     m_bufferEnd = m_buffer + bufferSize;
     memcpy(m_buffer, buffer, bufferSize);
 }
 
-bool ArgumentDecoder::bufferIsLargeEnoughToContain(size_t size) const
+static inline bool alignedBufferIsLargeEnoughToContain(const uint8_t* alignedPosition, const uint8_t* bufferEnd, size_t size)
 {
-    return m_buffer + size <= m_bufferEnd;
+    return bufferEnd >= alignedPosition && static_cast<size_t>(bufferEnd - alignedPosition) >= size;
 }
 
-bool ArgumentDecoder::decodeFixedLengthData(uint8_t* data, size_t size)
+bool ArgumentDecoder::alignBufferPosition(unsigned alignment, size_t size)
 {
-    if (!bufferIsLargeEnoughToContain(size))
+    uint8_t* alignedPosition = roundUpToAlignment(m_bufferPos, alignment);
+    if (!alignedBufferIsLargeEnoughToContain(alignedPosition, m_bufferEnd, size)) {
+        // We've walked off the end of this buffer.
+        markInvalid();
         return false;
+    }
+    
+    m_bufferPos = alignedPosition;
+    return true;
+}
 
-    memcpy(data, m_bufferPosition, size);
-    m_bufferPosition += size;
+bool ArgumentDecoder::bufferIsLargeEnoughToContain(unsigned alignment, size_t size) const
+{
+    return alignedBufferIsLargeEnoughToContain(roundUpToAlignment(m_bufferPos, alignment), m_bufferEnd, size);
+}
 
+bool ArgumentDecoder::decodeFixedLengthData(uint8_t* data, size_t size, unsigned alignment)
+{
+    if (!alignBufferPosition(alignment, size))
+        return false;
+
+    memcpy(data, m_bufferPos, size);
+    m_bufferPos += size;
+
     return true;
 }
 
@@ -89,71 +116,102 @@
     if (!decode(size))
         return false;
     
-    if (!bufferIsLargeEnoughToContain(size))
+    if (!alignBufferPosition(1, size))
         return false;
 
-    uint8_t* data = ""
-    m_bufferPosition += size;
+    uint8_t* data = ""
+    m_bufferPos += size;
 
     dataReference = DataReference(data, size);
     return true;
 }
 
 template<typename Type>
-bool ArgumentDecoder::decodeNumber(Type& value)
+static void decodeValueFromBuffer(Type& value, uint8_t*& bufferPosition)
 {
-    if (!bufferIsLargeEnoughToContain(sizeof(Type)))
-        return false;
-
-    memcpy(&value, m_bufferPosition, sizeof(Type));
-    m_bufferPosition += sizeof(Type);
-
-    return true;
+    memcpy(&value, bufferPosition, sizeof(value));
+    bufferPosition += sizeof(Type);
 }
 
 bool ArgumentDecoder::decode(bool& result)
 {
-    return decodeNumber(result);
+    if (!alignBufferPosition(sizeof(result), sizeof(result)))
+        return false;
+    
+    decodeValueFromBuffer(result, m_bufferPos);
+    return true;
 }
 
 bool ArgumentDecoder::decode(uint8_t& result)
 {
-    return decodeNumber(result);
+    if (!alignBufferPosition(sizeof(result), sizeof(result)))
+        return false;
+
+    decodeValueFromBuffer(result, m_bufferPos);
+    return true;
 }
 
 bool ArgumentDecoder::decode(uint16_t& result)
 {
-    return decodeNumber(result);
+    if (!alignBufferPosition(sizeof(result), sizeof(result)))
+        return false;
+
+    decodeValueFromBuffer(result, m_bufferPos);
+    return true;
 }
 
 bool ArgumentDecoder::decode(uint32_t& result)
 {
-    return decodeNumber(result);
+    if (!alignBufferPosition(sizeof(result), sizeof(result)))
+        return false;
+
+    decodeValueFromBuffer(result, m_bufferPos);
+    return true;
 }
 
 bool ArgumentDecoder::decode(uint64_t& result)
 {
-    return decodeNumber(result);
+    if (!alignBufferPosition(sizeof(result), sizeof(result)))
+        return false;
+    
+    decodeValueFromBuffer(result, m_bufferPos);
+    return true;
 }
 
 bool ArgumentDecoder::decode(int32_t& result)
 {
-    return decodeNumber(result);
+    if (!alignBufferPosition(sizeof(result), sizeof(result)))
+        return false;
+    
+    decodeValueFromBuffer(result, m_bufferPos);
+    return true;
 }
 
 bool ArgumentDecoder::decode(int64_t& result)
 {
-    return decodeNumber(result);
+    if (!alignBufferPosition(sizeof(result), sizeof(result)))
+        return false;
+
+    decodeValueFromBuffer(result, m_bufferPos);
+    return true;
 }
 
 bool ArgumentDecoder::decode(float& result)
 {
-    return decodeNumber(result);
+    if (!alignBufferPosition(sizeof(result), sizeof(result)))
+        return false;
+
+    decodeValueFromBuffer(result, m_bufferPos);
+    return true;
 }
 
 bool ArgumentDecoder::decode(double& result)
 {
-    return decodeNumber(result);
+    if (!alignBufferPosition(sizeof(result), sizeof(result)))
+        return false;
+    
+    decodeValueFromBuffer(result, m_bufferPos);
+    return true;
 }
 
 bool ArgumentDecoder::removeAttachment(Attachment& attachment)

Modified: tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentDecoder.h (176781 => 176782)


--- tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentDecoder.h	2014-12-04 03:05:27 UTC (rev 176781)
+++ tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentDecoder.h	2014-12-04 03:08:59 UTC (rev 176782)
@@ -42,10 +42,10 @@
 
     size_t length() const { return m_bufferEnd - m_buffer; }
 
-    bool isInvalid() const { return m_bufferPosition > m_bufferEnd; }
-    void markInvalid() { m_bufferPosition = m_bufferEnd + 1; }
+    bool isInvalid() const { return m_bufferPos > m_bufferEnd; }
+    void markInvalid() { m_bufferPos = m_bufferEnd + 1; }
 
-    bool decodeFixedLengthData(uint8_t*, size_t);
+    bool decodeFixedLengthData(uint8_t*, size_t, unsigned alignment);
 
     // The data in the data reference here will only be valid for the lifetime of the ArgumentDecoder object.
     bool decodeVariableLengthByteArray(DataReference&);
@@ -80,7 +80,7 @@
         if (numElements > std::numeric_limits<size_t>::max() / sizeof(T))
             return false;
 
-        return bufferIsLargeEnoughToContain(numElements * sizeof(T));
+        return bufferIsLargeEnoughToContain(alignof(T), numElements * sizeof(T));
     }
 
     // Generic type decode function.
@@ -96,12 +96,12 @@
 
     void initialize(const uint8_t* buffer, size_t bufferSize);
 
-    bool bufferIsLargeEnoughToContain(size_t) const;
-    template <typename Type> bool decodeNumber(Type& value);
+    bool alignBufferPosition(unsigned alignment, size_t size);
+    bool bufferIsLargeEnoughToContain(unsigned alignment, size_t size) const;
 
 private:
     uint8_t* m_buffer;
-    uint8_t* m_bufferPosition;
+    uint8_t* m_bufferPos;
     uint8_t* m_bufferEnd;
 
     Vector<Attachment> m_attachments;

Modified: tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentEncoder.cpp (176781 => 176782)


--- tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentEncoder.cpp	2014-12-04 03:05:27 UTC (rev 176781)
+++ tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentEncoder.cpp	2014-12-04 03:08:59 UTC (rev 176782)
@@ -57,6 +57,7 @@
 
 ArgumentEncoder::ArgumentEncoder()
     : m_buffer(m_inlineBuffer)
+    , m_bufferPointer(m_inlineBuffer)
     , m_bufferSize(0)
     , m_bufferCapacity(sizeof(m_inlineBuffer))
 {
@@ -102,78 +103,89 @@
     m_bufferCapacity = newCapacity;
 }
 
-uint8_t* ArgumentEncoder::grow(size_t size)
+uint8_t* ArgumentEncoder::grow(unsigned alignment, size_t size)
 {
-    size_t position = m_bufferSize;
-    reserve(m_bufferSize + size);
+    size_t alignedSize = roundUpToAlignment(m_bufferSize, alignment);
+    reserve(alignedSize + size);
 
-    m_bufferSize += size;
-
-    return m_buffer + position;
+    m_bufferSize = alignedSize + size;
+    m_bufferPointer = m_buffer + alignedSize + size;
+    
+    return m_buffer + alignedSize;
 }
 
-void ArgumentEncoder::encodeFixedLengthData(const uint8_t* data, size_t size)
+void ArgumentEncoder::encodeFixedLengthData(const uint8_t* data, size_t size, unsigned alignment)
 {
-    uint8_t* buffer = grow(size);
+    ASSERT(!(reinterpret_cast<uintptr_t>(data) % alignment));
+
+    uint8_t* buffer = grow(alignment, size);
     memcpy(buffer, data, size);
 }
 
 void ArgumentEncoder::encodeVariableLengthByteArray(const DataReference& dataReference)
 {
     encode(static_cast<uint64_t>(dataReference.size()));
-    encodeFixedLengthData(dataReference.data(), dataReference.size());
+    encodeFixedLengthData(dataReference.data(), dataReference.size(), 1);
 }
 
 template<typename Type>
-void ArgumentEncoder::encodeNumber(Type value)
+static void copyValueToBuffer(Type value, uint8_t* bufferPosition)
 {
-    uint8_t* bufferPosition = grow(sizeof(Type));
     memcpy(bufferPosition, &value, sizeof(Type));
 }
 
-void ArgumentEncoder::encode(bool value)
+void ArgumentEncoder::encode(bool n)
 {
-    encodeNumber(value);
+    uint8_t* buffer = grow(sizeof(n), sizeof(n));
+    copyValueToBuffer(n, buffer);
 }
 
-void ArgumentEncoder::encode(uint8_t value)
+void ArgumentEncoder::encode(uint8_t n)
 {
-    encodeNumber(value);
+    uint8_t* buffer = grow(sizeof(n), sizeof(n));
+    copyValueToBuffer(n, buffer);
 }
 
-void ArgumentEncoder::encode(uint16_t value)
+void ArgumentEncoder::encode(uint16_t n)
 {
-    encodeNumber(value);
+    uint8_t* buffer = grow(sizeof(n), sizeof(n));
+    copyValueToBuffer(n, buffer);
 }
 
-void ArgumentEncoder::encode(uint32_t value)
+void ArgumentEncoder::encode(uint32_t n)
 {
-    encodeNumber(value);
+    uint8_t* buffer = grow(sizeof(n), sizeof(n));
+    copyValueToBuffer(n, buffer);
 }
 
-void ArgumentEncoder::encode(uint64_t value)
+void ArgumentEncoder::encode(uint64_t n)
 {
-    encodeNumber(value);
+    uint8_t* buffer = grow(sizeof(n), sizeof(n));
+    copyValueToBuffer(n, buffer);
 }
 
-void ArgumentEncoder::encode(int32_t value)
+void ArgumentEncoder::encode(int32_t n)
 {
-    encodeNumber(value);
+    uint8_t* buffer = grow(sizeof(n), sizeof(n));
+    copyValueToBuffer(n, buffer);
 }
 
-void ArgumentEncoder::encode(int64_t value)
+void ArgumentEncoder::encode(int64_t n)
 {
-    encodeNumber(value);
+    uint8_t* buffer = grow(sizeof(n), sizeof(n));
+    copyValueToBuffer(n, buffer);
 }
 
-void ArgumentEncoder::encode(float value)
+void ArgumentEncoder::encode(float n)
 {
-    encodeNumber(value);
+    uint8_t* buffer = grow(sizeof(n), sizeof(n));
+    copyValueToBuffer(n, buffer);
 }
 
-void ArgumentEncoder::encode(double value)
+void ArgumentEncoder::encode(double n)
 {
-    encodeNumber(value);
+    uint8_t* buffer = grow(sizeof(n), sizeof(n));
+    copyValueToBuffer(n, buffer);
 }
 
 void ArgumentEncoder::addAttachment(const Attachment& attachment)

Modified: tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentEncoder.h (176781 => 176782)


--- tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentEncoder.h	2014-12-04 03:05:27 UTC (rev 176781)
+++ tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/ArgumentEncoder.h	2014-12-04 03:08:59 UTC (rev 176782)
@@ -41,7 +41,7 @@
     ArgumentEncoder();
     virtual ~ArgumentEncoder();
 
-    void encodeFixedLengthData(const uint8_t*, size_t);
+    void encodeFixedLengthData(const uint8_t*, size_t, unsigned alignment);
     void encodeVariableLengthByteArray(const DataReference&);
 
     template<typename T> void encodeEnum(T t)
@@ -62,16 +62,13 @@
         return *this;
     }
 
-    const uint8_t* buffer() const { return m_buffer; }
+    uint8_t* buffer() const { return m_buffer; }
     size_t bufferSize() const { return m_bufferSize; }
 
     void addAttachment(const Attachment&);
     Vector<Attachment> releaseAttachments();
     void reserve(size_t);
 
-protected:
-    uint8_t* mutableBuffer() { return m_buffer; }
-
 private:
     void encode(bool);
     void encode(uint8_t);
@@ -82,13 +79,14 @@
     void encode(int64_t);
     void encode(float);
     void encode(double);
-    template<typename Type> void encodeNumber(Type);
 
-    uint8_t* grow(size_t);
+    uint8_t* grow(unsigned alignment, size_t size);
 
     uint8_t m_inlineBuffer[512];
-    uint8_t* m_buffer;
 
+    uint8_t* m_buffer;
+    uint8_t* m_bufferPointer;
+    
     size_t m_bufferSize;
     size_t m_bufferCapacity;
 

Modified: tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/DataReference.cpp (176781 => 176782)


--- tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/DataReference.cpp	2014-12-04 03:05:27 UTC (rev 176781)
+++ tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/DataReference.cpp	2014-12-04 03:08:59 UTC (rev 176782)
@@ -51,7 +51,7 @@
     unsigned position = 0;
     while (position < bufferSize) {
         unsigned bytesToWrite = m_buffer->getSomeData(partialData, position);
-        encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(partialData), bytesToWrite);
+        encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(partialData), bytesToWrite, 1);
         position += bytesToWrite;
     }
 }

Modified: tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/MessageEncoder.cpp (176781 => 176782)


--- tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/MessageEncoder.cpp	2014-12-04 03:05:27 UTC (rev 176781)
+++ tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/MessageEncoder.cpp	2014-12-04 03:08:59 UTC (rev 176782)
@@ -51,17 +51,17 @@
 void MessageEncoder::setIsSyncMessage(bool isSyncMessage)
 {
     if (isSyncMessage)
-        *mutableBuffer() |= SyncMessage;
+        *buffer() |= SyncMessage;
     else
-        *mutableBuffer() &= ~SyncMessage;
+        *buffer() &= ~SyncMessage;
 }
 
 void MessageEncoder::setShouldDispatchMessageWhenWaitingForSyncReply(bool shouldDispatchMessageWhenWaitingForSyncReply)
 {
     if (shouldDispatchMessageWhenWaitingForSyncReply)
-        *mutableBuffer() |= DispatchMessageWhenWaitingForSyncReply;
+        *buffer() |= DispatchMessageWhenWaitingForSyncReply;
     else
-        *mutableBuffer() &= ~DispatchMessageWhenWaitingForSyncReply;
+        *buffer() &= ~DispatchMessageWhenWaitingForSyncReply;
 }
 
 } // namespace IPC

Modified: tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm (176781 => 176782)


--- tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm	2014-12-04 03:05:27 UTC (rev 176781)
+++ tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm	2014-12-04 03:08:59 UTC (rev 176782)
@@ -327,7 +327,7 @@
         if (messageBodyIsOOL) {
             mach_msg_descriptor_t* descriptor = reinterpret_cast<mach_msg_descriptor_t*>(descriptorData);
 
-            descriptor->out_of_line.address = const_cast<uint8_t*>(encoder->buffer());
+            descriptor->out_of_line.address = encoder->buffer();
             descriptor->out_of_line.size = encoder->bufferSize();
             descriptor->out_of_line.copy = MACH_MSG_VIRTUAL_COPY;
             descriptor->out_of_line.deallocate = false;

Modified: tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp (176781 => 176782)


--- tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp	2014-12-04 03:05:27 UTC (rev 176781)
+++ tags/Safari-601.1.11/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp	2014-12-04 03:08:59 UTC (rev 176782)
@@ -514,7 +514,7 @@
     }
 
     if (!messageInfo.isMessageBodyIsOutOfLine() && encoder->bufferSize()) {
-        iov[iovLength].iov_base = reinterpret_cast<void*>(const_cast<uint8_t*>(encoder->buffer()));
+        iov[iovLength].iov_base = reinterpret_cast<void*>(encoder->buffer());
         iov[iovLength].iov_len = encoder->bufferSize();
         ++iovLength;
     }

Modified: tags/Safari-601.1.11/Source/WebKit2/Shared/linux/SeccompFilters/SeccompBroker.cpp (176781 => 176782)


--- tags/Safari-601.1.11/Source/WebKit2/Shared/linux/SeccompFilters/SeccompBroker.cpp	2014-12-04 03:05:27 UTC (rev 176781)
+++ tags/Safari-601.1.11/Source/WebKit2/Shared/linux/SeccompFilters/SeccompBroker.cpp	2014-12-04 03:08:59 UTC (rev 176782)
@@ -205,7 +205,7 @@
 
     m_socketLock.lock();
 
-    if (sendMessage(m_socket, reinterpret_cast<void*>(const_cast<uint8_t*>(encoder->buffer())), encoder->bufferSize()) < 0)
+    if (sendMessage(m_socket, encoder->buffer(), encoder->bufferSize()) < 0)
         CRASH();
 
     while (true) {
@@ -340,7 +340,7 @@
         int fd = attachments.size() == 1 ? attachments[0].fileDescriptor() : -1;
 
         // The client is down, the broker should go away.
-        if (sendMessage(socket, reinterpret_cast<void*>(const_cast<uint8_t*>(encoder->buffer())), encoder->bufferSize(), fd) < 0)
+        if (sendMessage(socket, encoder->buffer(), encoder->bufferSize(), fd) < 0)
             exit(EXIT_SUCCESS);
     }
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to