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

opensaml.spec.in
saml/saml2/metadata/impl/AbstractMetadataProvider.cpp

index bff71c8..b7c3d27 100644 (file)
@@ -1,6 +1,6 @@
 Name:          @PACKAGE_NAME@
 Version:       @PACKAGE_VERSION@
-Release:       2
+Release:       1
 Summary:       OpenSAML SAML library
 Group:         Development/Libraries/C and C++
 Vendor:                Shibboleth Consortium
@@ -8,6 +8,12 @@ License:       Apache 2.0
 URL:           http://www.opensaml.org/
 Source0:       %{name}-%{version}.tar.gz
 BuildRoot:     %{_tmppath}/%{name}-%{version}-root
+%if 0%{?suse_version} > 1030 && 0%{?suse_version} < 1130
+BuildRequires:  libXerces-c-devel >= 2.8.0
+%else
+BuildRequires:  libxerces-c-devel >= 2.8.0
+%endif
+BuildRequires:  libxml-security-c-devel >= 1.4.0
 BuildRequires:  libxmltooling-devel >= 1.4
 %{?_with_log4cpp:BuildRequires: liblog4cpp-devel >= 1.0}
 %{!?_with_log4cpp:BuildRequires: liblog4shib-devel >= 1.0.4}
@@ -61,6 +67,12 @@ Group:               Development/Libraries/C and C++
 Requires:      libsaml8 = %{version}-%{release}
 Provides:      @PACKAGE_NAME@-devel = %{version}-%{release}
 Obsoletes:     @PACKAGE_NAME@-devel < %{version}-%{release}
+%if 0%{?suse_version} > 1030 && 0%{?suse_version} < 1130
+BuildRequires:  libXerces-c-devel >= 2.8.0
+%else
+BuildRequires:  libxerces-c-devel >= 2.8.0
+%endif
+Requires: libxml-security-c-devel >= 1.4.0
 Requires: libxmltooling-devel >= 1.4
 %{?_with_log4cpp:Requires: liblog4cpp-devel >= 1.0}
 %{!?_with_log4cpp:Requires: liblog4shib-devel >= 1.0.4}
index 229d881..419fe1e 100644 (file)
@@ -363,9 +363,12 @@ const AbstractMetadataProvider::credmap_t::mapped_type& AbstractMetadataProvider
             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;