[Libreoffice-commits] core.git: vcl/source
Caolán McNamara
caolanm at redhat.com
Sat Feb 14 10:45:26 PST 2015
vcl/source/gdi/jobset.cxx | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
New commits:
commit 00729f0f95ae06d063620f7b6211c2d803571c47
Author: Caolán McNamara <caolanm at redhat.com>
Date: Sat Feb 14 14:56:58 2015 +0000
coverity#1266485 Untrusted loop bound
should be equivalent
Change-Id: I7bec152b8abb26b34f7b5362a47dc5bdcbee02a9
diff --git a/vcl/source/gdi/jobset.cxx b/vcl/source/gdi/jobset.cxx
index 6e46fc0..07ddb83 100644
--- a/vcl/source/gdi/jobset.cxx
+++ b/vcl/source/gdi/jobset.cxx
@@ -218,8 +218,6 @@ SvStream& ReadJobSetup( SvStream& rIStream, JobSetup& rJobSetup )
DBG_ASSERTWARNING( rIStream.GetVersion(), "JobSetup::>> - Solar-Version not set on rOStream" );
{
- sal_Size nFirstPos = rIStream.Tell();
-
sal_uInt16 nLen = 0;
rIStream.ReadUInt16( nLen );
if ( !nLen )
@@ -234,9 +232,10 @@ SvStream& ReadJobSetup( SvStream& rIStream, JobSetup& rJobSetup )
" max possible entries, but " << nRead << " claimed, truncating");
return rIStream;
}
+ sal_Size nFirstPos = rIStream.Tell();
boost::scoped_array<char> pTempBuf(new char[nRead]);
rIStream.Read(pTempBuf.get(), nRead);
- if ( nLen >= sizeof(ImplOldJobSetupData)+4 )
+ if (nRead >= sizeof(ImplOldJobSetupData))
{
ImplOldJobSetupData* pData = reinterpret_cast<ImplOldJobSetupData*>(pTempBuf.get());
if ( rJobSetup.mpData )
@@ -278,8 +277,8 @@ SvStream& ReadJobSetup( SvStream& rIStream, JobSetup& rJobSetup )
}
if( nSystem == JOBSET_FILE605_SYSTEM )
{
- rIStream.Seek( nFirstPos + sizeof( ImplOldJobSetupData ) + 4 + sizeof( Impl364JobSetupData ) + pJobData->mnDriverDataLen );
- while( rIStream.Tell() < nFirstPos + nLen )
+ rIStream.Seek( nFirstPos + sizeof( ImplOldJobSetupData ) + sizeof( Impl364JobSetupData ) + pJobData->mnDriverDataLen );
+ while( rIStream.Tell() < nFirstPos + nRead )
{
OUString aKey = read_uInt16_lenPrefixed_uInt8s_ToOUString(rIStream, RTL_TEXTENCODING_UTF8);
OUString aValue = read_uInt16_lenPrefixed_uInt8s_ToOUString(rIStream, RTL_TEXTENCODING_UTF8);
@@ -297,9 +296,9 @@ SvStream& ReadJobSetup( SvStream& rIStream, JobSetup& rJobSetup )
else
pJobData->maValueMap[ aKey ] = aValue;
}
- DBG_ASSERT( rIStream.Tell() == nFirstPos+nLen, "corrupted job setup" );
+ DBG_ASSERT( rIStream.Tell() == nFirstPos+nRead, "corrupted job setup" );
// ensure correct stream position
- rIStream.Seek( nFirstPos + nLen );
+ rIStream.Seek(nFirstPos + nRead);
}
}
}
More information about the Libreoffice-commits
mailing list