[cpp-opensaml COMMIT] /branches/REL_2/saml/saml2/metadata/impl/AbstractMetadataProvider.cpp

noreply at shibboleth.net noreply at shibboleth.net
Fri Oct 5 20:11:45 EDT 2012


Author: scantor
Date: Fri Oct  5 20:11:45 2012
New Revision: 744

URL: http://svn.shibboleth.net/view/cpp-opensaml?rev=744&view=rev
Log:
https://issues.shibboleth.net/jira/browse/CPPXT-91

Modified:
    branches/REL_2/saml/saml2/metadata/impl/AbstractMetadataProvider.cpp

Modified: branches/REL_2/saml/saml2/metadata/impl/AbstractMetadataProvider.cpp
URL: http://svn.shibboleth.net/view/cpp-opensaml/branches/REL_2/saml/saml2/metadata/impl/AbstractMetadataProvider.cpp?rev=744&r1=743&r2=744&view=diff
==============================================================================
--- branches/REL_2/saml/saml2/metadata/impl/AbstractMetadataProvider.cpp (original)
+++ branches/REL_2/saml/saml2/metadata/impl/AbstractMetadataProvider.cpp Fri Oct  5 20:11:45 2012
@@ -363,9 +363,12 @@
             k != make_indirect_iterator(keys.end()); ++k) {
         if (k->getKeyInfo()) {
             auto_ptr<MetadataCredentialContext> mcc(new MetadataCredentialContext(*k));
-            Credential* c = resolver->resolve(mcc.get());
-            mcc.release();
-            resolved.push_back(c);
+            auto_ptr<Credential> c(resolver->resolve(mcc.get()));
+            if (c.get()) {
+                mcc.release();  // this API sucks, the object is now owned by the Credential
+                resolved.push_back(c.get());
+                c.release();
+            }
         }
     }
     return resolved;



More information about the commits mailing list