diff --git a/ConvertObj/ConvertObj.cc b/ConvertObj/ConvertObj.cc index 40ff3e7170..5f88e8d385 100644 --- a/ConvertObj/ConvertObj.cc +++ b/ConvertObj/ConvertObj.cc @@ -282,7 +282,33 @@ int main(int argc, char* argv[]) std::shared_ptr module; std::vector> modules; - std::cout << "\t.text\n\t.align 2\n"; + + { + int firstRecord = byte(in); + /*int flags =*/ byte(in); + int version = word(in); + + if(firstRecord != kFirst) + { + std::cerr << "Not an MPW object file.\n"; + return 1; + } + + if(version > 3) + { + std::cerr << "Unknown/invalid MPW object file version " + << version << std::endl; + return 1; + } + + if(verbose) + { + std::cerr << "First\n"; + std::cerr << "Version: " << version << std::endl; + } + } + + std::cout << "\t.text\n\t.align 2\n"; for(bool endOfObject = false; !endOfObject;) { if(verbose) @@ -304,17 +330,6 @@ int main(int argc, char* argv[]) if(verbose) std::cerr << "Pad\n"; break; - case kFirst: - { - /*int flags =*/ byte(in); - int version = word(in); - if(verbose) - { - std::cerr << "First\n"; - std::cerr << "Version: " << version << std::endl; - } - } - break; case kComment: { /*int flags =*/ byte(in);