From 7648d777302595d819e2a34e41bbda157392667b Mon Sep 17 00:00:00 2001 From: deva Date: Thu, 30 Jul 2009 09:47:03 +0000 Subject: Make sure we don't hang in an infinite loop when encountering malformed macro/template files. --- server/src/templateheaderparser.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'server/src/templateheaderparser.cc') diff --git a/server/src/templateheaderparser.cc b/server/src/templateheaderparser.cc index 8698e05..0b274ee 100644 --- a/server/src/templateheaderparser.cc +++ b/server/src/templateheaderparser.cc @@ -94,11 +94,13 @@ TemplateHeaderParser::~TemplateHeaderParser() void TemplateHeaderParser::startTag(std::string name, std::map< std::string, std::string> attributes) { - // Create template and enable parsing of queries, maps and widgets + if(t) return; + if(name == "template") { - assert(!t); // A Template has already been allocated, cannot create template! t = new Template(); t->attributes = attributes; + } else { + throw Exception("Missing root tag 'template' - found '" + name + "'"); } } -- cgit v1.2.3