From 1bb0e0fd198d4fd1df9f50cd06cb026d986321cb Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Tue, 24 Nov 2009 18:01:36 +0000 Subject: [PATCH] Add additional logging and fix a leak on an error path. --- saml/saml2/binding/impl/SAML2ArtifactDecoder.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/saml/saml2/binding/impl/SAML2ArtifactDecoder.cpp b/saml/saml2/binding/impl/SAML2ArtifactDecoder.cpp index e9fab4d..b3e1502 100644 --- a/saml/saml2/binding/impl/SAML2ArtifactDecoder.cpp +++ b/saml/saml2/binding/impl/SAML2ArtifactDecoder.cpp @@ -116,8 +116,9 @@ XMLObject* SAML2ArtifactDecoder::decode( // Check the type. auto_ptr artifact2(dynamic_cast(artifact)); if (!artifact2.get()) { - throw BindingException("Artifact binding requires SAML 2.0 artifact."); delete artifact; + log.error("wrong artifact type"); + throw BindingException("Artifact binding requires SAML 2.0 artifact."); } log.debug("attempting to determine source of artifact..."); @@ -158,8 +159,10 @@ XMLObject* SAML2ArtifactDecoder::decode( // Now extract details from the payload and check that message. XMLObject* payload = response->getPayload(); - if (!payload) + if (!payload) { + log.error("ArtifactResponse message did not contain a protocol message"); throw BindingException("ArtifactResponse message did not contain a protocol message."); + } extractMessageDetails(*payload, genericRequest, samlconstants::SAML20P_NS, policy); policy.evaluate(*payload, &genericRequest); -- 2.1.4