Bug 1023491 - Deserialize FrameMetrics::mContentDescription correctly over IPC. r=kats

This commit is contained in:
Botond Ballo 2014-06-10 17:09:02 -04:00
parent a56add1a31
commit 282eef67d2

View File

@ -771,7 +771,8 @@ struct ParamTraits<mozilla::layers::FrameMetrics>
static bool Read(const Message* aMsg, void** aIter, paramType* aResult)
{
return (ReadParam(aMsg, aIter, &aResult->mScrollableRect) &&
const char* contentDescription;
if (!(ReadParam(aMsg, aIter, &aResult->mScrollableRect) &&
ReadParam(aMsg, aIter, &aResult->mViewport) &&
ReadParam(aMsg, aIter, &aResult->mScrollOffset) &&
ReadParam(aMsg, aIter, &aResult->mDisplayPort) &&
@ -792,10 +793,16 @@ struct ParamTraits<mozilla::layers::FrameMetrics>
ReadParam(aMsg, aIter, &aResult->mHasScrollgrab) &&
ReadParam(aMsg, aIter, &aResult->mUpdateScrollOffset) &&
ReadParam(aMsg, aIter, &aResult->mScrollGeneration) &&
aMsg->ReadBytes(aIter,
reinterpret_cast<const char**>(&aResult->mContentDescription),
aMsg->ReadBytes(aIter, &contentDescription,
sizeof(aResult->mContentDescription)) &&
ReadParam(aMsg, aIter, &aResult->mTransformScale));
ReadParam(aMsg, aIter, &aResult->mTransformScale))) {
return false;
}
// ReadBytes() doesn't actually copy the string, it only points
// a pointer to the string in its internal buffer.
strncpy(aResult->mContentDescription, contentDescription,
sizeof(aResult->mContentDescription));
return true;
}
};