From 773ee3b49ffb2a304099c6bfbfa4bea214ac90d5 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sun, 4 Jan 2015 17:06:31 +0000 Subject: [PATCH] Tightened metadata validity requirements. To match the syntax documentation. --- src/backend/parsers.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/backend/parsers.h b/src/backend/parsers.h index 2841b72b..61c5d6e9 100644 --- a/src/backend/parsers.h +++ b/src/backend/parsers.h @@ -260,6 +260,9 @@ namespace YAML { static bool decode(const Node& node, loot::File& rhs) { if (node.IsMap()) { + if (!node["name"]) + return false; + std::string condition, name, display; if (node["condition"]) condition = node["condition"].as(); @@ -290,6 +293,9 @@ namespace YAML { static bool decode(const Node& node, loot::Tag& rhs) { std::string condition, tag; if (node.IsMap()) { + if (!node["name"]) + return false; + if (node["condition"]) condition = node["condition"].as(); if (node["name"]) @@ -323,6 +329,9 @@ namespace YAML { std::vector versions; if (node.IsMap()) { + if (!node["link"] || !node["ver"]) + return false; + if (node["link"]) url = node["link"].as(); if (node["ver"]) @@ -400,11 +409,11 @@ namespace YAML { } static bool decode(const Node& node, loot::Plugin& rhs) { - if (!node.IsMap()) + if (!node.IsMap() || !node["name"]) return false; - if (node["name"]) - rhs = loot::Plugin(node["name"].as()); + rhs = loot::Plugin(node["name"].as()); + if (node["enabled"]) rhs.Enabled(node["enabled"].as());