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

coverity#1242794 Untrusted loop bound

Change-Id: I902a5bf989a8f385994a2f927cce4975b18f06d2
üst 4a83b67e
...@@ -1895,10 +1895,18 @@ bool StarBASIC::LoadData( SvStream& r, sal_uInt16 nVer ) ...@@ -1895,10 +1895,18 @@ bool StarBASIC::LoadData( SvStream& r, sal_uInt16 nVer )
} }
ppDeleteTab.reset(); ppDeleteTab.reset();
sal_uInt16 nMod; sal_uInt16 nMod(0);
pModules->Clear(); pModules->Clear();
r.ReadUInt16( nMod ); r.ReadUInt16( nMod );
for( sal_uInt16 i = 0; i < nMod; i++ ) const size_t nMinSbxSize(14);
const size_t nMaxPossibleEntries = r.remainingSize() / nMinSbxSize;
if (nMod > nMaxPossibleEntries)
{
nMod = nMaxPossibleEntries;
SAL_WARN("basic", "Parsing error: " << nMaxPossibleEntries <<
" max possible entries, but " << nMod << " claimed, truncating");
}
for (sal_uInt16 i = 0; i < nMod; ++i)
{ {
SbxBase* pBase = SbxBase::Load( r ); SbxBase* pBase = SbxBase::Load( r );
SbModule* pMod = dynamic_cast<SbModule*>(pBase); SbModule* pMod = dynamic_cast<SbModule*>(pBase);
......
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