summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-02-14 20:09:04 +0000
committerCaolán McNamara <caolanm@redhat.com>2015-02-14 21:30:58 +0000
commita541aab2e7fdedcc84fff213069d7e521ff827a4 (patch)
tree5144ce090f54eaadd576ad8bdb4165d440a8c1a1 /sc
parent08348b226b6bb0ba9b1c24802c1f306b7b3905a1 (diff)
coverity#1242895 Untrusted loop bound
Change-Id: Iacd1fd5dcd91f09e142d46bd6f397375d3fd4906
Diffstat (limited to 'sc')
-rw-r--r--sc/source/filter/starcalc/scflt.cxx16
1 files changed, 7 insertions, 9 deletions
diff --git a/sc/source/filter/starcalc/scflt.cxx b/sc/source/filter/starcalc/scflt.cxx
index 8c290940c639..791ec6ad8453 100644
--- a/sc/source/filter/starcalc/scflt.cxx
+++ b/sc/source/filter/starcalc/scflt.cxx
@@ -1357,8 +1357,10 @@ void Sc10Import::LoadDataBaseCollection()
namespace
{
- sal_uInt16 SanitizeDataCount(sal_uInt16 nDataCount, SvStream &rStream)
+ sal_uInt16 ReadAndSanitizeDataCount(SvStream &rStream)
{
+ sal_uInt16 nDataCount(0);
+ rStream.ReadUInt16(nDataCount);
const size_t nMinRecordSize = sizeof(sal_uInt16)*2;
const size_t nMaxRecords = rStream.remainingSize() / nMinRecordSize;
if (nDataCount > nMaxRecords)
@@ -1471,8 +1473,7 @@ void Sc10Import::LoadTables()
nError = errUnknownID;
return;
}
- rStream.ReadUInt16( DataCount );
- DataCount = SanitizeDataCount(DataCount, rStream);
+ DataCount = ReadAndSanitizeDataCount(rStream);
DataStart = 0;
for (i=0; i < DataCount; i++)
{
@@ -1494,8 +1495,7 @@ void Sc10Import::LoadTables()
return;
}
- rStream.ReadUInt16( DataCount );
- DataCount = SanitizeDataCount(DataCount, rStream);
+ DataCount = ReadAndSanitizeDataCount(rStream);
DataStart = 0;
for (i=0; i < DataCount; i++)
{
@@ -1525,8 +1525,7 @@ void Sc10Import::LoadTables()
return;
}
- rStream.ReadUInt16( DataCount );
- DataCount = SanitizeDataCount(DataCount, rStream);
+ DataCount = ReadAndSanitizeDataCount(rStream);
DataStart = 0;
for (i=0; i < DataCount; i++)
{
@@ -1546,8 +1545,7 @@ void Sc10Import::LoadTables()
return;
}
- rStream.ReadUInt16(DataCount);
- DataCount = SanitizeDataCount(DataCount, rStream);
+ DataCount = ReadAndSanitizeDataCount(rStream);
DataStart = 0;
for (i=0; i < DataCount; i++)
{