Remove more leakage in cHashTable & policy parser

This commit is contained in:
brc0x1 2017-08-25 04:43:52 -07:00
parent 265bc4701e
commit 92580983ec
3 changed files with 12 additions and 3 deletions

View File

@ -254,10 +254,14 @@ inline void cHashTableIter<KEY_TYPE, VAL_TYPE, COMPARE_OP, CONVERTER>::SeekNextV
{
if(mpCurNode)
mpCurNode = mpCurNode->next;
//mCurIndex++;
while((! mpCurNode) && (mCurIndex < mHashTable.mTableSize))
// if we're out of range, bail out w/o incrementing index
if(mCurIndex >= mHashTable.mTableSize)
return;
while((! mpCurNode) && (++mCurIndex < mHashTable.mTableSize))
{
mpCurNode = mHashTable.mTable[++mCurIndex];
mpCurNode = mHashTable.mTable[mCurIndex];
}
}

View File

@ -141,6 +141,8 @@ void cGenreParseInfo::InitPredefinedVariables()
{
mLocalPredefVarTable.Insert( sVarName, sValue );
}
delete pGU;
}

View File

@ -927,6 +927,7 @@ case YYr26: { /* rule : fco_name TWP_RARROW spec_masks */
// add to our lists
cParserHelper::GetGenreInfo()->AddStopPoint( fcoName );
cParserHelper::GetGenreInfo()->AddRule( pnode );
delete pGU;
}
delete yypvt[-2].mpStringList;
@ -959,6 +960,7 @@ case YYr27: { /* rule : TWP_BANG fco_name */
// add to stop list
cParserHelper::GetGenreInfo()->AddStopPoint( fcoName );
delete pGU;
}
delete yypvt[0].mpStringList;
@ -978,6 +980,7 @@ case YYr28: { /* spec_masks : prop_vector opt_spec_attributes */
yypvt[0].mpAttrList->MergeNoOverwrite( cParserHelper::GetGlobalAttrList() );
yyval.mpNode = pNode;
delete pGU;
}
delete yypvt[-1].mpString;