https://issues.shibboleth.net/jira/browse/CPPXT-91
authorscantor <scantor@fb386ef7-a10c-0410-8ebf-fd3f8e989ab0>
Sat, 6 Oct 2012 00:11:45 +0000 (00:11 +0000)
committerscantor <scantor@fb386ef7-a10c-0410-8ebf-fd3f8e989ab0>
Sat, 6 Oct 2012 00:11:45 +0000 (00:11 +0000)
git-svn-id: https://svn.shibboleth.net/cpp-opensaml/branches/REL_2@744 fb386ef7-a10c-0410-8ebf-fd3f8e989ab0

1  2 
saml/saml2/metadata/impl/AbstractMetadataProvider.cpp

@@@ -363,9 -363,9 +363,12 @@@ const AbstractMetadataProvider::credmap
              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;