+-------------------------------------------------------------------
+Thu Sep 27 17:13:14 CEST 2007 - ma@suse.de
+
+- Fixed pattern parser SEGV on broken pattern files. (#328546)
+- revision 7402
+
-------------------------------------------------------------------
Wed Sep 26 11:08:14 CEST 2007 - schubi@suse.de
-- QueuItemRequire: Filter out all provider which have worser architecture,
+- QueuItemRequire: Filter out all provider which have worser architecture,
are NOT noarch and have not the same name as the requirement. The
last one is needed for updating packages via patch/atoms.
Bug 328081
-- Revert changes of r 7340
+- Revert changes of r 7340
- r 7386
-------------------------------------------------------------------
// start new data
_pimpl->consumePat( tag_r );
}
- else if TAGFWD( Sum );
- else if TAGFWD( Vis );
- else if TAGFWD( Cat );
- else if TAGFWD( Ico );
- else if TAGFWD( Ord );
- else if TAGFWD( Ver );
- else
- { WAR << errPrefix( tag_r, "Unknown tag" ) << endl; }
+ else
+ {
+ if ( _pimpl->hasData() )
+ {
+ if TAGFWD( Sum );
+ else if TAGFWD( Vis );
+ else if TAGFWD( Cat );
+ else if TAGFWD( Ico );
+ else if TAGFWD( Ord );
+ else
+ { WAR << errPrefix( tag_r, "Unknown tag" ) << endl; }
+ }
+ else
+ {
+ if TAGFWD( Ver );
+ else
+ { WAR << errPrefix( tag_r, "Unknown header tag" ) << endl; }
+ }
+ }
}
///////////////////////////////////////////////////////////////////
//
void PatternFileReader::consume( const MultiTagPtr & tag_r )
{
- if TAGFWD( Req );
- else if TAGFWD( Prq );
- else if TAGFWD( Prv );
- else if TAGFWD( Con );
- else if TAGFWD( Obs );
- else if TAGFWD( Rec );
- else if TAGFWD( Fre );
- else if TAGFWD( Enh );
- else if TAGFWD( Sug );
- else if TAGFWD( Sup );
- // package related dependencies
- else if TAGFWD( Prq ); // requires
- else if TAGFWD( Pcn ); // conflicts
- else if TAGFWD( Pob ); // obsoletes
- else if TAGFWD( Prc ); // recommends
- else if TAGFWD( Pfr ); // freshens
- else if TAGFWD( Pen ); // enhances
- else if TAGFWD( Psg ); // suggests
- else if TAGFWD( Psp ); // supplements
- //
- else if TAGFWD( Des );
- else if TAGFWD( Inc ); // UI hint: includes
- else if TAGFWD( Ext ); // UI hint: extends
- else
- { WAR << errPrefix( tag_r, "Unknown tag" ) << endl; }
+ if ( _pimpl->hasData() )
+ {
+ if TAGFWD( Req );
+ else if TAGFWD( Prq );
+ else if TAGFWD( Prv );
+ else if TAGFWD( Con );
+ else if TAGFWD( Obs );
+ else if TAGFWD( Rec );
+ else if TAGFWD( Fre );
+ else if TAGFWD( Enh );
+ else if TAGFWD( Sug );
+ else if TAGFWD( Sup );
+ // package related dependencies
+ else if TAGFWD( Prq ); // requires
+ else if TAGFWD( Pcn ); // conflicts
+ else if TAGFWD( Pob ); // obsoletes
+ else if TAGFWD( Prc ); // recommends
+ else if TAGFWD( Pfr ); // freshens
+ else if TAGFWD( Pen ); // enhances
+ else if TAGFWD( Psg ); // suggests
+ else if TAGFWD( Psp ); // supplements
+ //
+ else if TAGFWD( Des );
+ else if TAGFWD( Inc ); // UI hint: includes
+ else if TAGFWD( Ext ); // UI hint: extends
+ else
+ { WAR << errPrefix( tag_r, "Unknown tag" ) << endl; }
+ }
+ else
+ { WAR << errPrefix( tag_r, "Unknown header tag" ) << endl; }
}
///////////////////////////////////////////////////////////////////