diff options
author | Oliver-Rainer Wittmann <orw@apache.org> | 2014-04-10 08:47:58 +0000 |
---|---|---|
committer | Oliver-Rainer Wittmann <orw@apache.org> | 2014-04-10 08:47:58 +0000 |
commit | 4d57671f3bdd9628cd21d0991e50a96b10abf63a (patch) | |
tree | 2085be5911d1939bdb5ec0993ee3c15fe9f66c13 /vcl/source | |
parent | b85ed2610713a082bf2f17171177695557e86575 (diff) |
124639: correct consideration of not provided header offset when checking certain read header data
Notes
Notes:
prefer: 9984807f17593b97778fc31824c50706ea2e826c
Diffstat (limited to 'vcl/source')
-rwxr-xr-x | vcl/source/gdi/dibtools.cxx | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/vcl/source/gdi/dibtools.cxx b/vcl/source/gdi/dibtools.cxx index d4ea127f5c06..503ccf902d5c 100755 --- a/vcl/source/gdi/dibtools.cxx +++ b/vcl/source/gdi/dibtools.cxx @@ -615,12 +615,15 @@ bool ImplReadDIBBody( SvStream& rIStm, Bitmap& rBmp, Bitmap* pBmpAlpha, sal_uLon { DIBV5Header aHeader; const sal_uLong nStmPos = rIStm.Tell(); - bool bRet(false); - bool bTopDown(false); + bool bRet( false ); + bool bTopDown( false ); - if(ImplReadDIBInfoHeader(rIStm, aHeader, bTopDown) && aHeader.nWidth && aHeader.nHeight && aHeader.nBitCount) + if ( ImplReadDIBInfoHeader( rIStm, aHeader, bTopDown ) + && aHeader.nWidth != 0 + && aHeader.nHeight != 0 + && aHeader.nBitCount != 0 ) { - if (aHeader.nSize > nOffset) + if ( nOffset > 0 && aHeader.nSize > nOffset ) { // Header size claims to extend into the image data. // Looks like an error. |