Comments
[mech_eap.orig] / util_attr.cpp
index 57c5570..2e92acc 100644 (file)
@@ -137,8 +137,11 @@ gss_eap_attr_ctx::initFromExistingContext(const gss_eap_attr_ctx *manager)
 
         ret = provider->initFromExistingContext(this,
                                                 manager->m_providers[i]);
-        if (ret == false)
+        if (ret == false) {
+            delete provider;
+            m_providers[i] = NULL;
             break;
+        }
     }
 
     return ret;
@@ -160,8 +163,11 @@ gss_eap_attr_ctx::initFromGssContext(const gss_cred_id_t cred,
             continue;
 
         ret = provider->initFromGssContext(this, cred, ctx);
-        if (ret == false)
+        if (ret == false) {
+            delete provider;
+            m_providers[i] = NULL;
             break;
+        }
     }
 
     return ret;
@@ -189,8 +195,11 @@ gss_eap_attr_ctx::initFromBuffer(const gss_buffer_t buffer)
         ret = provider->initFromGssContext(this,
                                            GSS_C_NO_CREDENTIAL,
                                            GSS_C_NO_CONTEXT);
-        if (ret == false)
+        if (ret == false) {
+            delete provider;
+            m_providers[i] = NULL;
             break;
+        }
     }
 
     return ret;
@@ -232,7 +241,7 @@ gss_eap_attr_ctx::getProvider(const gss_buffer_t prefix) const
 gss_eap_attr_provider *
 gss_eap_attr_ctx::getPrimaryProvider(void) const
 {
-    return m_providers[ATTR_TYPE_RADIUS];
+    return m_providers[ATTR_TYPE_MIN];
 }
 
 /*
@@ -815,37 +824,6 @@ gssEapReleaseAttrContext(OM_uint32 *minor,
     return GSS_S_COMPLETE;
 }
 
-OM_uint32
-gssEapAttrProvidersInit(OM_uint32 *minor)
-{
-    try {
-        if (gss_eap_radius_attr_provider::init()    &&
-            gss_eap_saml_assertion_provider::init() &&
-            gss_eap_saml_attr_provider::init()      &&
-            gss_eap_shib_attr_provider::init())
-            return GSS_S_COMPLETE;
-    } catch (std::exception &e) {
-        return mapException(minor, e);
-    }
-
-    return GSS_S_FAILURE;
-}
-
-OM_uint32
-gssEapAttrProvidersFinalize(OM_uint32 *minor)
-{
-    try {
-        gss_eap_shib_attr_provider::finalize();
-        gss_eap_saml_attr_provider::finalize();
-        gss_eap_saml_assertion_provider::finalize();
-        gss_eap_radius_attr_provider::finalize();
-    } catch (std::exception &e) {
-        return mapException(minor, e);
-    }
-
-    return GSS_S_COMPLETE;
-}
-
 /*
  * Public accessor for initialisng a context from a GSS context. Also
  * sets expiry time on GSS context as a side-effect.