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);
}
}