Răsfoiți Sursa

fix crash in jsonschema in case of invalid typename

alexvins 11 ani în urmă
părinte
comite
9f01a92f4c
1 a modificat fișierele cu 9 adăugiri și 2 ștergeri
  1. 9 2
      lib/JsonDetail.cpp

+ 9 - 2
lib/JsonDetail.cpp

@@ -594,8 +594,15 @@ namespace
 		}
 
 		std::string typeCheck(Validation::ValidationData & validator, const JsonNode & baseSchema, const JsonNode & schema, const JsonNode & data)
-		{
-			JsonNode::JsonType type = stringToType.find(schema.String())->second;
+		{
+			const auto typeName = schema.String();
+			auto it = stringToType.find(typeName);
+			if(it == stringToType.end())
+			{
+				return validator.makeErrorMessage("Unknown type in schema:" + typeName);
+			}
+			
+			JsonNode::JsonType type = it->second;
 			if(type != data.getType() && data.getType() != JsonNode::DATA_NULL)
 				return validator.makeErrorMessage("Type mismatch! Expected " + schema.String());
 			return "";