Kaydet (Commit) be31503e authored tarafından Caolán McNamara's avatar Caolán McNamara

coverity#1242778 Untrusted value as argument

Change-Id: I34d5a5e7c5f0eef51d941c65ab73d5421d5a36cb
üst b520fca8
...@@ -1043,19 +1043,26 @@ SdrObject* SwMSDffManager::ProcessObj(SvStream& rSt, ...@@ -1043,19 +1043,26 @@ SdrObject* SwMSDffManager::ProcessObj(SvStream& rSt,
delete pImpRec->pWrapPolygon; delete pImpRec->pWrapPolygon;
pImpRec->pWrapPolygon = NULL; pImpRec->pWrapPolygon = NULL;
sal_uInt16 nNumElemVert, nNumElemMemVert, nElemSizeVert; sal_uInt16 nNumElemVert(0), nNumElemMemVert(0), nElemSizeVert(0);
rSt.ReadUInt16( nNumElemVert ).ReadUInt16( nNumElemMemVert ).ReadUInt16( nElemSizeVert ); rSt.ReadUInt16( nNumElemVert ).ReadUInt16( nNumElemMemVert ).ReadUInt16( nElemSizeVert );
bool bOk = false;
if (nNumElemVert && ((nElemSizeVert == 8) || (nElemSizeVert == 4))) if (nNumElemVert && ((nElemSizeVert == 8) || (nElemSizeVert == 4)))
{
//check if there is enough data in the file to make the
//record sane
bOk = rSt.remainingSize() / nElemSizeVert >= nNumElemVert;
}
if (bOk)
{ {
pImpRec->pWrapPolygon = new Polygon(nNumElemVert); pImpRec->pWrapPolygon = new Polygon(nNumElemVert);
for (sal_uInt16 i = 0; i < nNumElemVert; ++i) for (sal_uInt16 i = 0; i < nNumElemVert; ++i)
{ {
sal_Int32 nX, nY; sal_Int32 nX(0), nY(0);
if (nElemSizeVert == 8) if (nElemSizeVert == 8)
rSt.ReadInt32( nX ).ReadInt32( nY ); rSt.ReadInt32( nX ).ReadInt32( nY );
else else
{ {
sal_Int16 nSmallX, nSmallY; sal_Int16 nSmallX(0), nSmallY(0);
rSt.ReadInt16( nSmallX ).ReadInt16( nSmallY ); rSt.ReadInt16( nSmallX ).ReadInt16( nSmallY );
nX = nSmallX; nX = nSmallX;
nY = nSmallY; nY = nSmallY;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment