From: curt Date: Fri, 5 Jun 1998 18:14:39 +0000 (+0000) Subject: Abort out early when reading the "A" record if it doesn't look like X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=317854534f70b945e79e5c4ef6e9996a469064a6;p=flightgear.git Abort out early when reading the "A" record if it doesn't look like a proper DEM file. --- diff --git a/DEM/dem.cxx b/DEM/dem.cxx index 0e3351f18..b76f183b1 100644 --- a/DEM/dem.cxx +++ b/DEM/dem.cxx @@ -198,7 +198,7 @@ static int next_exp(gzFile fd) { // read and parse DEM "A" record -void fgDEM::read_a_record( void ) { +int fgDEM::read_a_record( void ) { int i, inum; double dnum; char name[144]; @@ -225,6 +225,10 @@ void fgDEM::read_a_record( void ) { inum = next_int(fd); printf(" DEM level code = %d\n", inum); + if ( inum > 3 ) { + return(0); + } + // Pattern code, 1 indicates a regular elevation pattern inum = next_int(fd); printf(" Pattern code = %d\n", inum); @@ -331,6 +335,8 @@ void fgDEM::read_a_record( void ) { // number of profiles dem_num_profiles = cols = next_int(fd); printf(" Expecting %d profiles\n", dem_num_profiles); + + return(1); } @@ -377,7 +383,9 @@ int fgDEM::parse( void ) { cur_col = 0; - read_a_record(); + if ( !read_a_record() ) { + return(0); + } for ( i = 0; i < dem_num_profiles; i++ ) { // printf("Ready to read next b record\n"); @@ -391,7 +399,7 @@ int fgDEM::parse( void ) { printf(" Done parsing\n"); - return(0); + return(1); } @@ -772,6 +780,10 @@ fgDEM::~fgDEM( void ) { // $Log$ +// Revision 1.7 1998/06/05 18:14:39 curt +// Abort out early when reading the "A" record if it doesn't look like +// a proper DEM file. +// // Revision 1.6 1998/05/02 01:49:21 curt // Fixed a bug where the wrong variable was being initialized. // diff --git a/DEM/dem.hxx b/DEM/dem.hxx index 065ead15c..31870b125 100644 --- a/DEM/dem.hxx +++ b/DEM/dem.hxx @@ -92,7 +92,7 @@ public: int parse( void ); // read and parse DEM "A" record - void read_a_record( void ); + int read_a_record( void ); // read and parse DEM "B" record void read_b_record( void ); @@ -130,6 +130,10 @@ public: // $Log$ +// Revision 1.6 1998/06/05 18:14:40 curt +// Abort out early when reading the "A" record if it doesn't look like +// a proper DEM file. +// // Revision 1.5 1998/04/22 13:14:46 curt // Fixed a bug in zlib usage. //