1
0
Fork 0

Fix fgviewer segfault

fgviewer crashes when reading weird channel options (which it doesn't use).
Here is a patch which fixes this by adding a pointer check.
This commit is contained in:
Jeff Taylor 2010-05-22 13:30:03 -07:00 committed by Tim Moore
parent a060fe3acf
commit 09f3ee6351

View file

@ -530,6 +530,14 @@ parse_fov( const string& arg ) {
static bool
add_channel( const string& type, const string& channel_str ) {
// This check is neccessary to prevent fgviewer from segfaulting when given
// weird options. (It doesn't run the full initailization)
if(!globals->get_channel_options_list())
{
SG_LOG(SG_GENERAL, SG_ALERT, "Option " << type << "=" << channel_str
<< " ignored.");
return false;
}
SG_LOG(SG_GENERAL, SG_INFO, "Channel string = " << channel_str );
globals->get_channel_options_list()->push_back( type + "," + channel_str );
return true;
@ -1572,6 +1580,7 @@ parse_option (const string& arg)
}
break;
case OPTION_CHANNEL:
// XXX return value of add_channel should be checked?
if ( pt->has_param && !arg_value.empty() ) {
add_channel( pt->option, arg_value );
} else if ( !pt->has_param && arg_value.empty() ) {