]> git.mxchange.org Git - flightgear.git/commitdiff
Abort out early when reading the "A" record if it doesn't look like
authorcurt <curt>
Fri, 5 Jun 1998 18:14:39 +0000 (18:14 +0000)
committercurt <curt>
Fri, 5 Jun 1998 18:14:39 +0000 (18:14 +0000)
a proper DEM file.

DEM/dem.cxx
DEM/dem.hxx

index 0e3351f18adf0a491c7678cc07a32e95e149b7e0..b76f183b1be6292daabe3c342c916c364a158e2a 100644 (file)
@@ -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.
 //
index 065ead15ca638d4cd3764d4d1ba99a75c0c72e00..31870b125f7fe93d264724906a22dccc4709fba5 100644 (file)
@@ -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.
 //