diff options
| author | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-04-22 00:44:57 +0000 |
|---|---|---|
| committer | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-04-22 00:44:57 +0000 |
| commit | 2f5ef5fef00b3762deb8f5963406484cb145d0a2 (patch) | |
| tree | 38b99cc7e0e4bde09d5a66579f3035a4fe49b0ce | |
| parent | 1ef02e3fe2fdd36a45ab6b47499db6d3e404b3e0 (diff) | |
| download | lasso-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.c | 11 | ||||
| -rw-r--r-- | lasso/id-ff/login.c | 7 | ||||
| -rw-r--r-- | lasso/id-ff/provider.c | 5 | ||||
| -rw-r--r-- | lasso/id-ff/session.c | 18 | ||||
| -rw-r--r-- | lasso/id-wsf-2.0/discovery.c | 2 | ||||
| -rw-r--r-- | lasso/id-wsf/discovery.c | 2 | ||||
| -rw-r--r-- | lasso/saml-2.0/login.c | 6 | ||||
| -rw-r--r-- | lasso/saml-2.0/provider.c | 2 | ||||
| -rw-r--r-- | lasso/xml/saml-2.0/samlp2_response.c | 3 | ||||
| -rw-r--r-- | lasso/xml/xml.c | 4 |
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); |
