Report failures correctly to AFL.

This commit is contained in:
chriseth 2017-02-16 18:05:11 +01:00
parent 8be318e75b
commit f66ebbc8e2

View File

@ -55,14 +55,14 @@ int main()
if (!Json::Reader().parse(outputString, outputJson)) if (!Json::Reader().parse(outputString, outputJson))
{ {
cout << "Compiler produced invalid JSON output." << endl; cout << "Compiler produced invalid JSON output." << endl;
return -1; abort();
} }
if (outputJson.isMember("errors")) if (outputJson.isMember("errors"))
{ {
if (!outputJson["errors"].isArray()) if (!outputJson["errors"].isArray())
{ {
cout << "Output JSON has \"errors\" but it is not an array." << endl; cout << "Output JSON has \"errors\" but it is not an array." << endl;
return -1; abort();
} }
for (Json::Value const& error: outputJson["errors"]) for (Json::Value const& error: outputJson["errors"])
{ {
@ -79,14 +79,14 @@ int main()
if (!invalid.empty()) if (!invalid.empty())
{ {
cout << "Invalid error: \"" << invalid << "\"" << endl; cout << "Invalid error: \"" << invalid << "\"" << endl;
return -1; abort();
} }
} }
} }
else if (!outputJson.isMember("contracts")) else if (!outputJson.isMember("contracts"))
{ {
cout << "Output JSON has neither \"errors\" nor \"contracts\"." << endl; cout << "Output JSON has neither \"errors\" nor \"contracts\"." << endl;
return -1; abort();
} }
return 0; return 0;
} }