1
0
Fork 0

Additional checks to io arguments. This prevents fg from crashing on invalid

arguments.
This commit is contained in:
ehofman 2005-12-11 13:12:26 +00:00
parent 4c395bf7a6
commit 6773bf9571

View file

@ -203,7 +203,11 @@ FGIO::parse_port_config( const string& config )
delete io;
return 0;
}
if (tokens.size() < 3) {
SG_LOG( SG_IO, SG_ALERT, "Incompatible number of network arguments.");
return NULL;
}
string medium = tokens[1];
SG_LOG( SG_IO, SG_INFO, " medium = " << medium );
@ -217,6 +221,10 @@ FGIO::parse_port_config( const string& config )
SG_LOG( SG_IO, SG_INFO, " hertz = " << hertz );
if ( medium == "serial" ) {
if ( tokens.size() < 5) {
SG_LOG( SG_IO, SG_ALERT, "Incompatible number of arguments for serial communications.");
return NULL;
}
// device name
string device = tokens[4];
SG_LOG( SG_IO, SG_INFO, " device = " << device );
@ -229,13 +237,22 @@ FGIO::parse_port_config( const string& config )
io->set_io_channel( ch );
} else if ( medium == "file" ) {
// file name
if ( tokens.size() < 4) {
SG_LOG( SG_IO, SG_ALERT, "Incompatible number of arguments for file I/O.");
return NULL;
}
string file = tokens[4];
SG_LOG( SG_IO, SG_INFO, " file name = " << file );
SGFile *ch = new SGFile( file );
io->set_io_channel( ch );
} else if ( medium == "socket" ) {
string hostname = tokens[4];
if ( tokens.size() < 6) {
SG_LOG( SG_IO, SG_ALERT, "Incompatible number of arguments for socket communications.");
return NULL;
}
string hostname = tokens[4];
string port = tokens[5];
string style = tokens[6];