From 9c9bad679c7efa9a8b66ed368470abc4dd2abc5d Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Thu, 21 Nov 2013 15:03:16 +0000 Subject: [PATCH] https://issues.shibboleth.net/jira/browse/SSPCPP-598 --- shibsp/metadata/DynamicMetadataProvider.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/shibsp/metadata/DynamicMetadataProvider.cpp b/shibsp/metadata/DynamicMetadataProvider.cpp index 9f9079d..da5c808 100644 --- a/shibsp/metadata/DynamicMetadataProvider.cpp +++ b/shibsp/metadata/DynamicMetadataProvider.cpp @@ -40,6 +40,7 @@ #include #include #include + #include #include #include @@ -300,6 +301,12 @@ saml2md::EntityDescriptor* DynamicMetadataProvider::resolve(const saml2md::Metad // Wrap the document for now. XercesJanitor docjanitor(doc); + // Check root element. + if (!doc->getDocumentElement() || !XMLHelper::isNodeNamed(doc->getDocumentElement(), + samlconstants::SAML20MD_NS, saml2md::EntityDescriptor::LOCAL_NAME)) { + throw saml2md::MetadataException("Root of metadata instance was not an EntityDescriptor"); + } + // Unmarshall objects, binding the document. auto_ptr xmlObject(XMLObjectBuilder::buildOneFromElement(doc->getDocumentElement(), true)); docjanitor.release(); -- 2.1.4