Try again
authorEddie Hung <eddie@fpgeh.com>
Wed, 22 May 2019 00:20:19 +0000 (17:20 -0700)
committerEddie Hung <eddie@fpgeh.com>
Wed, 22 May 2019 00:20:19 +0000 (17:20 -0700)
frontends/aiger/aigerparse.cc

index 566825ece9cb5ba5c7c1943a1b8dd97e41d45ef4..e5ec475d177bc8c00ea53b35c044e816fb44d8b5 100644 (file)
@@ -55,10 +55,16 @@ void AigerReader::parse_aiger()
 
     // Optional values
     B = C = J = F = 0;
-    if (f.peek() == ' ') {
-        if (!(f >> B >> C >> J >> F))
-            log_error("Invalid AIGER header\n");
-    }
+    if (f.peek() != ' ') goto parse_body;
+    if (!(f >> B)) log_error("Invalid AIGER header\n");
+    if (f.peek() != ' ') goto parse_body;
+    if (!(f >> C)) log_error("Invalid AIGER header\n");
+    if (f.peek() != ' ') goto parse_body;
+    if (!(f >> J)) log_error("Invalid AIGER header\n");
+    if (f.peek() != ' ') goto parse_body;
+    if (!(f >> F)) log_error("Invalid AIGER header\n");
+
+parse_body:
 
     std::string line;
     std::getline(f, line); // Ignore up to start of next line, as standard