diff options
author | Benoit Foucher <benoit@zeroc.com> | 2009-09-10 09:40:35 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2009-09-10 09:40:35 +0200 |
commit | d49d9702bf59e28c9e01800da08aee631dbf951b (patch) | |
tree | 4280d63a4264c2c01058480d94747ebd660925a0 /cpp/src | |
parent | 2564 - ObjectAdapter::removeServantLocator (diff) | |
download | ice-d49d9702bf59e28c9e01800da08aee631dbf951b.tar.bz2 ice-d49d9702bf59e28c9e01800da08aee631dbf951b.tar.xz ice-d49d9702bf59e28c9e01800da08aee631dbf951b.zip |
Fixed bug 4233 - icegridadmin segfault
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/IceGrid/DescriptorParser.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/cpp/src/IceGrid/DescriptorParser.cpp b/cpp/src/IceGrid/DescriptorParser.cpp index 0ab928f94d6..62e6fe1c1ed 100644 --- a/cpp/src/IceGrid/DescriptorParser.cpp +++ b/cpp/src/IceGrid/DescriptorParser.cpp @@ -204,7 +204,7 @@ DescriptorHandler::startElement(const string& name, const IceXML::Attributes& at } else if(name == "node") { - if(!_currentApplication.get()) + if(!_currentApplication.get() || _currentNode.get()) { error("the <node> element can only be a child of an <application> element"); } @@ -212,7 +212,7 @@ DescriptorHandler::startElement(const string& name, const IceXML::Attributes& at } else if(name == "server-instance") { - if(!_currentNode.get() || _currentServer.get()) + if(!_currentNode.get() || _currentServer.get() || _currentServerInstance.get()) { error("the <server-instance> element can only be a child of a <node> element"); } @@ -220,7 +220,7 @@ DescriptorHandler::startElement(const string& name, const IceXML::Attributes& at } else if(name == "server") { - if((!_currentNode.get() && !_currentTemplate.get()) || _currentServer.get()) + if((!_currentNode.get() && !_currentTemplate.get()) || _currentServer.get() || _currentServerInstance.get()) { error("the <server> element can only be a child of a <node> or <server-template> element"); } @@ -236,7 +236,7 @@ DescriptorHandler::startElement(const string& name, const IceXML::Attributes& at } else if(name == "icebox") { - if((!_currentNode.get() && !_currentTemplate.get()) || _currentServer.get()) + if((!_currentNode.get() && !_currentTemplate.get()) || _currentServer.get() || _currentServerInstance.get()) { error("the <icebox> element can only be a child of a <node> or <server-template> element"); } @@ -260,7 +260,7 @@ DescriptorHandler::startElement(const string& name, const IceXML::Attributes& at } else if(name == "service-instance") { - if(!_currentServer.get()) + if(!_currentServer.get() || _currentServiceInstance.get()) { error("the <service-instance> element can only be a child of an <icebox> element"); } @@ -268,7 +268,8 @@ DescriptorHandler::startElement(const string& name, const IceXML::Attributes& at } else if(name == "service") { - if((!_currentServer.get() && !_currentTemplate.get()) || _currentService.get()) + if((!_currentServer.get() && !_currentTemplate.get()) || _currentService.get() || + _currentServiceInstance.get()) { error("the <service> element can only be a child of an <icebox> or <service-template> element"); } |