diff options
| author | deva <deva> | 2009-07-30 09:47:03 +0000 | 
|---|---|---|
| committer | deva <deva> | 2009-07-30 09:47:03 +0000 | 
| commit | 7648d777302595d819e2a34e41bbda157392667b (patch) | |
| tree | f97a75e7f87f8156016a043bfd22f7508d3f48af /server/src/macroheaderparser.cc | |
| parent | 706e18fae5713e070d6379f1ec9da1757b338f4e (diff) | |
Make sure we don't hang in an infinite loop when encountering malformed macro/template files.
Diffstat (limited to 'server/src/macroheaderparser.cc')
| -rw-r--r-- | server/src/macroheaderparser.cc | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/server/src/macroheaderparser.cc b/server/src/macroheaderparser.cc index d6ba0bb..def80c3 100644 --- a/server/src/macroheaderparser.cc +++ b/server/src/macroheaderparser.cc @@ -94,11 +94,13 @@ MacroHeaderParser::~MacroHeaderParser()  void MacroHeaderParser::startTag(std::string name, std::map< std::string, std::string> attributes)  { -  // Create macro and enable parsing of queries, maps and widgets +  if(m) return; +    if(name == "macro") { -    assert(!m); // A Macro has already been allocated, cannot create macro!      m = new Macro();      m->attributes = attributes; +  } else { +    throw Exception("Missing root tag 'macro' - found '" + name + "'");    }  } | 
