summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-04-22 00:44:57 +0000
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-04-22 00:44:57 +0000
commit2f5ef5fef00b3762deb8f5963406484cb145d0a2 (patch)
tree38b99cc7e0e4bde09d5a66579f3035a4fe49b0ce
parent1ef02e3fe2fdd36a45ab6b47499db6d3e404b3e0 (diff)
downloadlasso-2f5ef5fef00b3762deb8f5963406484cb145d0a2.tar.gz
lasso-2f5ef5fef00b3762deb8f5963406484cb145d0a2.tar.xz
lasso-2f5ef5fef00b3762deb8f5963406484cb145d0a2.zip
Improve safety by replacing all g_list_free use by lasso_release_list
-rw-r--r--lasso/id-ff/identity.c11
-rw-r--r--lasso/id-ff/login.c7
-rw-r--r--lasso/id-ff/provider.c5
-rw-r--r--lasso/id-ff/session.c18
-rw-r--r--lasso/id-wsf-2.0/discovery.c2
-rw-r--r--lasso/id-wsf/discovery.c2
-rw-r--r--lasso/saml-2.0/login.c6
-rw-r--r--lasso/saml-2.0/provider.c2
-rw-r--r--lasso/xml/saml-2.0/samlp2_response.c3
-rw-r--r--lasso/xml/xml.c4
10 files changed, 20 insertions, 40 deletions
diff --git a/lasso/id-ff/identity.c b/lasso/id-ff/identity.c
index 047d6ff8..8582b5b4 100644
--- a/lasso/id-ff/identity.c
+++ b/lasso/id-ff/identity.c
@@ -260,16 +260,11 @@ dispose(GObject *object)
if (identity->private_data->dispose_has_run == FALSE) {
identity->private_data->dispose_has_run = TRUE;
#ifdef LASSO_WSF_ENABLED
- if (identity->private_data->svcMDID != NULL) {
- g_list_foreach(identity->private_data->svcMDID, (GFunc)g_free, NULL);
- g_list_free(identity->private_data->svcMDID);
- identity->private_data->svcMDID = NULL;
- }
- g_hash_table_destroy(identity->private_data->resource_offerings_map);
+ lasso_release_list_of_strings(identity->private_data->svcMDID);
+ lasso_release_ghashtable(identity->private_data->resource_offerings_map);
#endif
- g_hash_table_destroy(identity->federations);
- identity->federations = NULL;
+ lasso_release_ghashtable(identity->federations);
G_OBJECT_CLASS(parent_class)->dispose(object);
}
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c
index 23ab7f0d..4243c036 100644
--- a/lasso/id-ff/login.c
+++ b/lasso/id-ff/login.c
@@ -441,11 +441,6 @@ lasso_login_build_assertion(LassoLogin *login,
ss->Subject = LASSO_SAML_SUBJECT(lasso_saml_subject_new());
ss->Subject->NameIdentifier = g_object_ref(profile->nameIdentifier);
ss->Subject->SubjectConfirmation = lasso_saml_subject_confirmation_new();
- if (ss->Subject->SubjectConfirmation->ConfirmationMethod) {
- /* we know it will only have one element */
- lasso_release_string(ss->Subject->SubjectConfirmation->ConfirmationMethod->data);
- g_list_free(ss->Subject->SubjectConfirmation->ConfirmationMethod);
- }
/* liberty-architecture-bindings-profiles-v1.1.pdf, page 24, line 729 */
lasso_list_add_string(ss->Subject->SubjectConfirmation->ConfirmationMethod,
LASSO_SAML_CONFIRMATION_METHOD_ARTIFACT01);
@@ -1877,7 +1872,7 @@ lasso_login_must_authenticate(LassoLogin *login)
matched = (profile->session != NULL && \
lasso_session_count_assertions(profile->session) > 0);
}
- g_list_free(assertions);
+ lasso_release_list(assertions);
if (matched == FALSE && request->IsPassive == FALSE)
return TRUE;
diff --git a/lasso/id-ff/provider.c b/lasso/id-ff/provider.c
index 571c52ff..73410f05 100644
--- a/lasso/id-ff/provider.c
+++ b/lasso/id-ff/provider.c
@@ -747,8 +747,7 @@ lasso_provider_get_cache_duration(LassoProvider *provider)
static void
free_list_strings(GList *list)
{
- g_list_foreach(list, (GFunc)g_free, NULL);
- g_list_free(list);
+ lasso_release_list_of_strings(list);
}
static void
@@ -762,8 +761,6 @@ dispose(GObject *object)
provider->private_data->dispose_has_run = TRUE;
if (provider->private_data->Descriptors) {
- g_hash_table_foreach(provider->private_data->Descriptors,
- (GHFunc)free_list_strings, NULL);
g_hash_table_destroy(provider->private_data->Descriptors);
}
provider->private_data->Descriptors = NULL;
diff --git a/lasso/id-ff/session.c b/lasso/id-ff/session.c
index 0ce25aff..467492d8 100644
--- a/lasso/id-ff/session.c
+++ b/lasso/id-ff/session.c
@@ -254,8 +254,7 @@ lasso_session_get_status(LassoSession *session, const gchar *providerID)
static void
add_providerID(gchar *key, G_GNUC_UNUSED LassoLibAssertion *assertion, LassoSession *session)
{
- session->private_data->providerIDs = g_list_append(
- session->private_data->providerIDs, key);
+ lasso_list_add_string(session->private_data->providerIDs, key);
}
/**
@@ -283,7 +282,7 @@ lasso_session_get_provider_index(LassoSession *session, gint index)
return NULL;
if (session->private_data->providerIDs == NULL) {
- g_hash_table_foreach(session->assertions, (GHFunc)add_providerID, session);
+ lasso_session_init_provider_ids(session);
}
element = g_list_nth(session->private_data->providerIDs, index);
@@ -304,14 +303,10 @@ lasso_session_get_provider_index(LassoSession *session, gint index)
void
lasso_session_init_provider_ids(LassoSession *session)
{
- if (session == NULL) {
- return;
- }
+ g_return_if_fail(LASSO_IS_SESSION(session));
+ g_return_if_fail(session->private_data);
- if (session->private_data->providerIDs) {
- g_list_free(session->private_data->providerIDs);
- session->private_data->providerIDs = NULL;
- }
+ lasso_release_list_of_strings(session->private_data->providerIDs);
g_hash_table_foreach(session->assertions, (GHFunc)add_providerID, session);
}
@@ -641,8 +636,7 @@ dispose(GObject *object)
g_hash_table_destroy(session->private_data->status);
session->private_data->status = NULL;
- g_list_free(session->private_data->providerIDs);
- session->private_data->providerIDs = NULL;
+ lasso_release_list_of_strings(session->private_data->providerIDs);
g_hash_table_destroy(session->private_data->assertions_by_id);
session->private_data->assertions_by_id = NULL;
diff --git a/lasso/id-wsf-2.0/discovery.c b/lasso/id-wsf-2.0/discovery.c
index af5a8c58..923c413f 100644
--- a/lasso/id-wsf-2.0/discovery.c
+++ b/lasso/id-wsf-2.0/discovery.c
@@ -899,7 +899,7 @@ lasso_idwsf2_discovery_match_request_service_and_metadata2(
break;
}
}
- g_list_free(service_options);
+ lasso_release_list(service_options);
result = result && option_result;
}
if (result) {
diff --git a/lasso/id-wsf/discovery.c b/lasso/id-wsf/discovery.c
index 1cf02698..c5c7df28 100644
--- a/lasso/id-wsf/discovery.c
+++ b/lasso/id-wsf/discovery.c
@@ -1044,7 +1044,7 @@ lasso_discovery_get_resource_offering_auto(LassoDiscovery *discovery, const gcha
}
cleanup:
- g_list_free(assertions);
+ lasso_release_list(assertions);
return resource_offering;
}
diff --git a/lasso/saml-2.0/login.c b/lasso/saml-2.0/login.c
index 62e6d79a..0d62a427 100644
--- a/lasso/saml-2.0/login.c
+++ b/lasso/saml-2.0/login.c
@@ -476,7 +476,7 @@ lasso_saml20_login_must_authenticate(LassoLogin *login)
lasso_session_count_assertions(profile->session) > 0);
}
if (assertions) {
- g_list_free(assertions);
+ lasso_release_list(assertions);
}
if (matched == FALSE && request->IsPassive == FALSE)
return TRUE;
@@ -1350,11 +1350,11 @@ lasso_saml20_login_accept_sso(LassoLogin *login)
ta = t->data;
if (g_strcmp0(ta->ID, assertion->ID) == 0) {
- g_list_free(previous_assertions);
+ lasso_release_list(previous_assertions);
return LASSO_LOGIN_ERROR_ASSERTION_REPLAY;
}
}
- g_list_free(previous_assertions);
+ lasso_release_list(previous_assertions);
lasso_session_add_assertion(profile->session, profile->remote_providerID,
LASSO_NODE(assertion));
diff --git a/lasso/saml-2.0/provider.c b/lasso/saml-2.0/provider.c
index bcc27b5d..231dd8fb 100644
--- a/lasso/saml-2.0/provider.c
+++ b/lasso/saml-2.0/provider.c
@@ -465,7 +465,7 @@ lasso_saml20_provider_check_assertion_consumer_service_url(LassoProvider *provid
}
}
lasso_release(name);
- g_list_free(r);
+ lasso_release_list(r);
if (candidate)
return TRUE;
diff --git a/lasso/xml/saml-2.0/samlp2_response.c b/lasso/xml/saml-2.0/samlp2_response.c
index 5a0bc25a..3299e644 100644
--- a/lasso/xml/saml-2.0/samlp2_response.c
+++ b/lasso/xml/saml-2.0/samlp2_response.c
@@ -93,8 +93,7 @@ get_xmlNode(LassoNode *node, gboolean lasso_dump)
if (lasso_dump == FALSE) {
lasso_release_list_of_gobjects(response->EncryptedAssertion);
- g_list_free(response->Assertion);
- response->Assertion = Assertion_save;
+ lasso_assign_list(response->Assertion, Assertion_save);
}
return result;
diff --git a/lasso/xml/xml.c b/lasso/xml/xml.c
index 7a846c37..75f79ae0 100644
--- a/lasso/xml/xml.c
+++ b/lasso/xml/xml.c
@@ -1358,7 +1358,7 @@ lasso_node_impl_get_xmlNode(LassoNode *node, gboolean lasso_dump)
xmlNewNs(xmlnode, ns->href, ns->prefix);
t = g_list_next(t);
}
- g_list_free(list_ns);
+ lasso_release_list(list_ns);
/* first NS defined is the namespace of the element */
xmlSetNs(xmlnode, xmlnode->nsDef);
@@ -1408,7 +1408,7 @@ lasso_node_impl_get_xmlNode(LassoNode *node, gboolean lasso_dump)
class->node_data->snippets, lasso_dump);
t = g_list_previous(t);
}
- g_list_free(list_classes);
+ lasso_release_list(list_classes);
xmlCleanNs(xmlnode);