Bug 1059813: Protect access to fields of |UnixSocketRawData|, r=qdot

This patch adds protection for fields of |UnixSocketRawData| by
making them private.
This commit is contained in:
Thomas Zimmermann
2014-09-08 11:44:02 +02:00
parent 02c0e8055c
commit 76c493bf1a
2 changed files with 26 additions and 30 deletions

View File

@@ -18,17 +18,9 @@ namespace ipc {
// UnixSocketRawData
//
UnixSocketRawData::UnixSocketRawData(size_t aSize)
: mSize(0)
, mCurrentWriteOffset(0)
, mAvailableSpace(aSize)
{
mData = new uint8_t[mAvailableSpace];
}
UnixSocketRawData::UnixSocketRawData(const void* aData, size_t aSize)
: mSize(aSize)
, mCurrentWriteOffset(0)
, mOffset(0)
, mAvailableSpace(aSize)
{
MOZ_ASSERT(aData || !mSize);
@@ -37,6 +29,14 @@ UnixSocketRawData::UnixSocketRawData(const void* aData, size_t aSize)
memcpy(mData, aData, mSize);
}
UnixSocketRawData::UnixSocketRawData(size_t aSize)
: mSize(0)
, mOffset(0)
, mAvailableSpace(aSize)
{
mData = new uint8_t[mAvailableSpace];
}
ssize_t
UnixSocketRawData::Receive(int aFd)
{
@@ -50,7 +50,7 @@ UnixSocketRawData::Receive(int aFd)
} else {
memmove(mData, GetData(), GetSize());
}
mCurrentWriteOffset = 0;
mOffset = 0;
}
ssize_t res =
@@ -193,7 +193,7 @@ SocketIOBase::~SocketIOBase()
void
SocketIOBase::EnqueueData(UnixSocketRawData* aData)
{
if (!aData->mSize) {
if (!aData->GetSize()) {
delete aData; // delete empty data immediately
return;
}