Author: orw
Date: Thu Apr 10 16:09:07 2014
New Revision: 1586357
URL: http://svn.apache.org/r1586357
Log:
124639: correct consideration of not provided header offset when checking
certain read header data
cherry-picked from trunk
Modified:
openoffice/branches/AOO410/ (props changed)
openoffice/branches/AOO410/main/ (props changed)
openoffice/branches/AOO410/main/vcl/source/gdi/dibtools.cxx
Propchange: openoffice/branches/AOO410/
------------------------------------------------------------------------------
Merged /openoffice/trunk:r1586242
Propchange: openoffice/branches/AOO410/main/
------------------------------------------------------------------------------
Merged /openoffice/trunk/main:r1586242
Modified: openoffice/branches/AOO410/main/vcl/source/gdi/dibtools.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/vcl/source/gdi/dibtools.cxx?rev=1586357&r1=1586356&r2=1586357&view=diff
==============================================================================
--- openoffice/branches/AOO410/main/vcl/source/gdi/dibtools.cxx (original)
+++ openoffice/branches/AOO410/main/vcl/source/gdi/dibtools.cxx Thu Apr 10
16:09:07 2014
@@ -613,14 +613,17 @@ bool ImplReadDIBBits(SvStream& rIStm, DI
bool ImplReadDIBBody( SvStream& rIStm, Bitmap& rBmp, Bitmap* pBmpAlpha,
sal_uLong nOffset )
{
- DIBV5Header aHeader;
- const sal_uLong nStmPos = rIStm.Tell();
- bool bRet(false);
- bool bTopDown(false);
-
- if(ImplReadDIBInfoHeader(rIStm, aHeader, bTopDown) && aHeader.nWidth &&
aHeader.nHeight && aHeader.nBitCount)
- {
- if (aHeader.nSize > nOffset)
+ DIBV5Header aHeader;
+ const sal_uLong nStmPos = rIStm.Tell();
+ bool bRet( false );
+ bool bTopDown( false );
+
+ if ( ImplReadDIBInfoHeader( rIStm, aHeader, bTopDown )
+ && aHeader.nWidth != 0
+ && aHeader.nHeight != 0
+ && aHeader.nBitCount != 0 )
+ {
+ if ( nOffset > 0 && aHeader.nSize > nOffset )
{
// Header size claims to extend into the image data.
// Looks like an error.