summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-04-22 00:44:45 +0000
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-04-22 00:44:45 +0000
commit0a169eda51add0070a68b6280293da03529ae78a (patch)
treea85f2e71aeffb17b8dc65cb5aa53a94cf682d796
parentc93fb2a356cd8af36bfaa6f5c356e8ad8824f30d (diff)
downloadlasso-0a169eda51add0070a68b6280293da03529ae78a.tar.gz
lasso-0a169eda51add0070a68b6280293da03529ae78a.tar.xz
lasso-0a169eda51add0070a68b6280293da03529ae78a.zip
Improve safety by replacing all g_free use by lasso_release
-rw-r--r--lasso/id-ff/defederation.c2
-rw-r--r--lasso/id-ff/federation.c3
-rw-r--r--lasso/id-ff/identity.c2
-rw-r--r--lasso/id-ff/login.c4
-rw-r--r--lasso/id-ff/logout.c10
-rw-r--r--lasso/id-ff/name_registration.c12
-rw-r--r--lasso/id-ff/provider.c26
-rw-r--r--lasso/id-ff/server.c8
-rw-r--r--lasso/id-ff/session.c7
-rw-r--r--lasso/id-wsf-2.0/data_service.c2
-rw-r--r--lasso/id-wsf-2.0/discovery.c2
-rw-r--r--lasso/id-wsf-2.0/profile.c4
-rw-r--r--lasso/id-wsf/authentication.c15
-rw-r--r--lasso/id-wsf/data_service.c2
-rw-r--r--lasso/id-wsf/discovery.c4
-rw-r--r--lasso/id-wsf/wsf_profile.c2
-rw-r--r--lasso/registry.c2
-rw-r--r--lasso/saml-2.0/assertion_query.c2
-rw-r--r--lasso/saml-2.0/ecp.c2
-rw-r--r--lasso/saml-2.0/provider.c4
-rw-r--r--lasso/saml-2.0/server.c3
-rw-r--r--lasso/xml/lib_federation_termination_notification.c4
-rw-r--r--lasso/xml/saml-2.0/samlp2_request_abstract.c2
-rw-r--r--lasso/xml/saml-2.0/samlp2_status_response.c2
-rw-r--r--lasso/xml/saml_assertion.c4
-rw-r--r--lasso/xml/tools.c14
-rw-r--r--lasso/xml/ws/wsse_username_token.c8
-rw-r--r--lasso/xml/xml.c20
28 files changed, 87 insertions, 85 deletions
diff --git a/lasso/id-ff/defederation.c b/lasso/id-ff/defederation.c
index 9877deb7..2d26bdee 100644
--- a/lasso/id-ff/defederation.c
+++ b/lasso/id-ff/defederation.c
@@ -409,7 +409,7 @@ lasso_defederation_validate_notification(LassoDefederation *defederation)
gchar *url;
gchar *query = g_strdup_printf("RelayState=%s", profile->msg_relayState);
url = lasso_concat_url_query(profile->msg_url, query);
- g_free(query);
+ lasso_release(query);
lasso_assign_new_string(profile->msg_url, url);
}
}
diff --git a/lasso/id-ff/federation.c b/lasso/id-ff/federation.c
index 6e8ba3ed..7c28e2be 100644
--- a/lasso/id-ff/federation.c
+++ b/lasso/id-ff/federation.c
@@ -30,6 +30,7 @@
* provider and a service provider. Instance of this class are usually never accessed directly.
**/
+#include "../utils.h"
#include "../xml/private.h"
#include "federation.h"
#include "provider.h"
@@ -208,7 +209,7 @@ static void
finalize(GObject *object)
{
LassoFederation *federation = LASSO_FEDERATION(object);
- g_free(federation->private_data);
+ lasso_release(federation->private_data);
G_OBJECT_CLASS(parent_class)->finalize(object);
}
diff --git a/lasso/id-ff/identity.c b/lasso/id-ff/identity.c
index e7e9179b..047d6ff8 100644
--- a/lasso/id-ff/identity.c
+++ b/lasso/id-ff/identity.c
@@ -279,7 +279,7 @@ static void
finalize(GObject *object)
{
LassoIdentity *identity = LASSO_IDENTITY(object);
- g_free(identity->private_data);
+ lasso_release(identity->private_data);
identity->private_data = NULL;
G_OBJECT_CLASS(parent_class)->finalize(object);
}
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c
index c7b4e72f..23ab7f0d 100644
--- a/lasso/id-ff/login.c
+++ b/lasso/id-ff/login.c
@@ -84,7 +84,7 @@
* } else if (protocolProfile == LASSO_SAML_2_0) {
* LassoSamlp2AuthnRequest *request = LASSO_SAMLP2_AUTHN_REQUEST(LASSO_PROFILE(login)->request);
* if (request->NameIDPolicy->Format) {
- * g_free(request->NameIDPolicy->Format);
+ * lasso_release(request->NameIDPolicy->Format);
* }
* request->NameIDPolicy->Format = g_strdup(LASSO_NAME_IDENTIFIER_FORMAT_PERSISTENT);
* // Allow creation of new federation
@@ -94,7 +94,7 @@
* request->IsPassive = FALSE;
* // tell the IdP how to return the response
* if (request->ProtocolBinding) {
- * g_free(request->ProtocolBinding);
+ * lasso_release(request->ProtocolBinding);
* }
* // here we expect an artifact response, it could be post, redirect or PAOS.
* request->ProtocolBinding = g_strdup(LASSO_SAML2_METADATA_BINDING_ARTIFACT);
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c
index 1b74084d..2ccffe88 100644
--- a/lasso/id-ff/logout.c
+++ b/lasso/id-ff/logout.c
@@ -330,13 +330,13 @@ lasso_logout_build_request_msg(LassoLogout *logout)
profile->server->signature_method,
profile->server->private_key);
if (query == NULL) {
- g_free(url);
+ lasso_release(url);
return critical_error(LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED);
}
/* build the msg_url */
lasso_assign_new_string(profile->msg_url, lasso_concat_url_query(url, query));
- g_free(url);
- g_free(query);
+ lasso_release(url);
+ lasso_release(query);
lasso_release_string(profile->msg_body);
return 0;
}
@@ -557,7 +557,7 @@ lasso_logout_init_request(LassoLogout *logout, char *remote_providerID,
/* get the remote provider id
If remote_providerID is NULL, then get the first remote provider id in session */
- g_free(profile->remote_providerID);
+ lasso_release(profile->remote_providerID);
if (remote_providerID == NULL) {
lasso_assign_new_string(profile->remote_providerID, lasso_session_get_provider_index(session, 0));
} else {
@@ -1294,7 +1294,7 @@ static void
finalize(GObject *object)
{
LassoLogout *logout = LASSO_LOGOUT(object);
- g_free(logout->private_data);
+ lasso_release(logout->private_data);
G_OBJECT_CLASS(parent_class)->finalize(object);
}
diff --git a/lasso/id-ff/name_registration.c b/lasso/id-ff/name_registration.c
index 968edd38..bd052bfd 100644
--- a/lasso/id-ff/name_registration.c
+++ b/lasso/id-ff/name_registration.c
@@ -108,14 +108,14 @@ lasso_name_registration_build_request_msg(LassoNameRegistration *name_registrati
profile->server->signature_method,
profile->server->private_key);
if (query == NULL) {
- g_free(url);
+ lasso_release(url);
return critical_error(LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED);
}
/* build the msg_url */
profile->msg_url = lasso_concat_url_query(url, query);
profile->msg_body = NULL;
- g_free(url);
- g_free(query);
+ lasso_release(url);
+ lasso_release(query);
return 0;
}
@@ -192,13 +192,13 @@ lasso_name_registration_build_response_msg(LassoNameRegistration *name_registrat
profile->server->signature_method,
profile->server->private_key);
if (query == NULL) {
- g_free(url);
+ lasso_release(url);
return critical_error(LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED);
}
/* build the msg_url */
profile->msg_url = lasso_concat_url_query(url, query);
- g_free(url);
- g_free(query);
+ lasso_release(url);
+ lasso_release(query);
profile->msg_body = NULL;
return 0;
diff --git a/lasso/id-ff/provider.c b/lasso/id-ff/provider.c
index fc24fa3e..571c52ff 100644
--- a/lasso/id-ff/provider.c
+++ b/lasso/id-ff/provider.c
@@ -121,7 +121,7 @@ lasso_provider_get_assertion_consumer_service_url(LassoProvider *provider, const
service_id = provider->private_data->default_assertion_consumer;
name = g_strdup_printf("AssertionConsumerServiceURL %s", service_id);
assertion_consumer_service_url = lasso_provider_get_metadata_one_for_role(provider, LASSO_PROVIDER_ROLE_SP, name);
- g_free(name);
+ lasso_release(name);
return assertion_consumer_service_url;
}
@@ -198,7 +198,7 @@ lasso_provider_get_metadata_list_for_role(const LassoProvider *provider, LassoPr
g_return_val_if_fail(role_prefix, NULL);
symbol = g_strdup_printf("%s %s", role_prefix, name);
l = g_hash_table_lookup(descriptor, symbol);
- g_free(symbol);
+ lasso_release(symbol);
return l;
}
@@ -317,7 +317,7 @@ lasso_provider_get_first_http_method(LassoProvider *provider,
}
t1 = g_list_next(t1);
}
- g_free(protocol_profile_prefix);
+ lasso_release(protocol_profile_prefix);
if (found) {
if (g_str_has_suffix(t2->data, "http"))
@@ -378,17 +378,17 @@ lasso_provider_accept_http_method(LassoProvider *provider, LassoProvider *remote
if (lasso_provider_has_protocol_profile(provider,
protocol_type, protocol_profile) == FALSE) {
- g_free(protocol_profile);
+ lasso_release(protocol_profile);
return FALSE;
}
if (lasso_provider_has_protocol_profile(remote_provider,
protocol_type, protocol_profile) == FALSE) {
- g_free(protocol_profile);
+ lasso_release(protocol_profile);
return FALSE;
}
- g_free(protocol_profile);
+ lasso_release(protocol_profile);
return TRUE;
}
@@ -745,7 +745,7 @@ lasso_provider_get_cache_duration(LassoProvider *provider)
/*****************************************************************************/
static void
-free_list_strings(G_GNUC_UNUSED gchar *key, GList *list, G_GNUC_UNUSED gpointer data)
+free_list_strings(GList *list)
{
g_list_foreach(list, (GFunc)g_free, NULL);
g_list_free(list);
@@ -774,7 +774,7 @@ dispose(GObject *object)
}
if (provider->private_data->default_assertion_consumer) {
- g_free(provider->private_data->default_assertion_consumer);
+ lasso_release(provider->private_data->default_assertion_consumer);
provider->private_data->default_assertion_consumer = NULL;
}
@@ -794,7 +794,7 @@ dispose(GObject *object)
}
if (provider->private_data->encryption_public_key_str) {
- g_free(provider->private_data->encryption_public_key_str);
+ lasso_release(provider->private_data->encryption_public_key_str);
provider->private_data->encryption_public_key_str = NULL;
}
@@ -803,9 +803,9 @@ dispose(GObject *object)
provider->private_data->encryption_public_key = NULL;
}
- g_free(provider->private_data->affiliation_id);
+ lasso_release(provider->private_data->affiliation_id);
provider->private_data->affiliation_id = NULL;
- g_free(provider->private_data->affiliation_owner_id);
+ lasso_release(provider->private_data->affiliation_owner_id);
provider->private_data->affiliation_owner_id = NULL;
G_OBJECT_CLASS(parent_class)->dispose(G_OBJECT(provider));
@@ -816,7 +816,7 @@ finalize(GObject *object)
{
LassoProvider *provider = LASSO_PROVIDER(object);
- g_free(provider->private_data);
+ lasso_release(provider->private_data);
provider->private_data = NULL;
G_OBJECT_CLASS(parent_class)->finalize(G_OBJECT(provider));
@@ -851,7 +851,7 @@ instance_init(LassoProvider *provider)
/* no value_destroy_func since it shouldn't destroy the GList on insert */
provider->private_data->Descriptors = g_hash_table_new_full(
- g_str_hash, g_str_equal, g_free, NULL);
+ g_str_hash, g_str_equal, g_free, (GFreeFunc)free_list_strings);
provider->private_data->attributes = NULL;
}
diff --git a/lasso/id-ff/server.c b/lasso/id-ff/server.c
index 2b6b5701..84613f63 100644
--- a/lasso/id-ff/server.c
+++ b/lasso/id-ff/server.c
@@ -479,16 +479,16 @@ finalize(GObject *object)
LassoServer *server = LASSO_SERVER(object);
int i = 0;
- g_free(server->private_key);
+ lasso_release(server->private_key);
if (server->private_key_password) {
/* don't use memset() because it may be optimised away by
* compiler (since the string is freed just after */
while (server->private_key_password[i])
server->private_key_password[i++] = 0;
- g_free(server->private_key_password);
+ lasso_release(server->private_key_password);
}
- g_free(server->certificate);
- g_free(server->private_data);
+ lasso_release(server->certificate);
+ lasso_release(server->private_data);
G_OBJECT_CLASS(parent_class)->finalize(G_OBJECT(server));
}
diff --git a/lasso/id-ff/session.c b/lasso/id-ff/session.c
index 5628eca0..0ce25aff 100644
--- a/lasso/id-ff/session.c
+++ b/lasso/id-ff/session.c
@@ -274,9 +274,8 @@ lasso_session_get_provider_index(LassoSession *session, gint index)
GList *element;
int length;
- if (session == NULL) {
- return NULL;
- }
+ g_return_val_if_fail(LASSO_IS_SESSION(session), NULL);
+ g_return_val_if_fail(session->private_data, NULL);
length = g_hash_table_size(session->assertions);
@@ -661,7 +660,7 @@ finalize(GObject *object)
{
LassoSession *session = LASSO_SESSION(object);
- g_free(session->private_data);
+ lasso_release(session->private_data);
session->private_data = NULL;
G_OBJECT_CLASS(parent_class)->finalize(object);
diff --git a/lasso/id-wsf-2.0/data_service.c b/lasso/id-wsf-2.0/data_service.c
index ef15ab53..44e0c1fe 100644
--- a/lasso/id-wsf-2.0/data_service.c
+++ b/lasso/id-wsf-2.0/data_service.c
@@ -991,7 +991,7 @@ static void
finalize(GObject *object)
{
LassoIdWsf2DataService *service = LASSO_IDWSF2_DATA_SERVICE(object);
- g_free(service->private_data);
+ lasso_release(service->private_data);
service->private_data = NULL;
G_OBJECT_CLASS(parent_class)->finalize(object);
}
diff --git a/lasso/id-wsf-2.0/discovery.c b/lasso/id-wsf-2.0/discovery.c
index e9c9a05c..af5a8c58 100644
--- a/lasso/id-wsf-2.0/discovery.c
+++ b/lasso/id-wsf-2.0/discovery.c
@@ -1372,7 +1372,7 @@ static void
finalize(GObject *object)
{
LassoIdWsf2Discovery *discovery = LASSO_IDWSF2_DISCOVERY(object);
- g_free(discovery->private_data);
+ lasso_release(discovery->private_data);
discovery->private_data = NULL;
G_OBJECT_CLASS(parent_class)->finalize(object);
}
diff --git a/lasso/id-wsf-2.0/profile.c b/lasso/id-wsf-2.0/profile.c
index 9d154904..de51b3c3 100644
--- a/lasso/id-wsf-2.0/profile.c
+++ b/lasso/id-wsf-2.0/profile.c
@@ -109,7 +109,7 @@ _add_fault_for_rc(LassoIdWsf2Profile *profile, int rc)
if (rc) {
code = g_strdup_printf("LASSO_ERROR_%i", rc);
fault = lasso_soap_fault_new_full(code, lasso_strerror(rc));
- g_free(code);
+ lasso_release(code);
lasso_release_list_of_gobjects(_get_soap_envelope_response(profile)->Header->Other);
lasso_soap_envelope_add_to_body(_get_soap_envelope_response(profile), (LassoNode*)fault);
}
@@ -556,7 +556,7 @@ lasso_idwsf2_profile_redirect_user_for_interaction(
url = g_strconcat(redirect_url, "?transactionID=", messageID->content, NULL);
}
redirect_request = lasso_idwsf2_sb2_redirect_request_new_full(url);
- g_free(url);
+ lasso_release(url);
lasso_check_good_rc(lasso_idwsf2_profile_init_soap_fault_response(profile,
LASSO_SOAP_FAULT_CODE_SERVER, "Server Error", &(GList){ .data =
redirect_request, .next = NULL, .prev = NULL } ));
diff --git a/lasso/id-wsf/authentication.c b/lasso/id-wsf/authentication.c
index fe54ee16..4707b04d 100644
--- a/lasso/id-wsf/authentication.c
+++ b/lasso/id-wsf/authentication.c
@@ -22,6 +22,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include "../utils.h"
#include "./authentication.h"
#include "../xml/private.h"
#include "../xml/sa_sasl_request.h"
@@ -153,7 +154,7 @@ lasso_authentication_client_start(LassoAuthentication *authentication)
/* mechusing is th resulting best mech to use, so copy it in SASLRequest element */
if (mechusing != NULL) {
- g_free(request->mechanism);
+ lasso_release(request->mechanism);
request->mechanism = g_strdup(mechusing);
}
@@ -531,13 +532,13 @@ lasso_authentication_server_start(LassoAuthentication *authentication)
}
}
if (chosen == NULL) {
- g_free(response->Status->code);
+ lasso_release(response->Status->code);
response->Status->code = g_strdup(LASSO_SA_STATUS_CODE_ABORT);
return res;
}
if (nbmech > 1 && request->Data != NULL) {
- g_free(response->Status->code);
+ lasso_release(response->Status->code);
response->Status->code = g_strdup(LASSO_SA_STATUS_CODE_ABORT);
return res;
}
@@ -560,7 +561,7 @@ lasso_authentication_server_start(LassoAuthentication *authentication)
/* set status code in SASLResponse message if not ok */
if (res != SASL_OK) {
- g_free(response->Status->code);
+ lasso_release(response->Status->code);
/* continue, set Data in response */
if (res == SASL_CONTINUE) {
@@ -602,7 +603,7 @@ lasso_authentication_server_step(LassoAuthentication *authentication)
/* If mechanism is NULL, thene client wants to abort authentication exchange */
if (g_str_equal(request->mechanism, "") == TRUE) {
- g_free(response->Status->code);
+ lasso_release(response->Status->code);
response->Status->code = g_strdup(LASSO_SA_STATUS_CODE_ABORT);
return 0;
@@ -621,7 +622,7 @@ lasso_authentication_server_step(LassoAuthentication *authentication)
&outlen);
if (res != SASL_OK) {
- g_free(response->Status->code);
+ lasso_release(response->Status->code);
if (res == SASL_CONTINUE) {
/* authentication exchange must continue */
@@ -694,7 +695,7 @@ static void
finalize(GObject *object)
{
LassoAuthentication *authentication = LASSO_AUTHENTICATION(object);
- g_free(authentication->private_data);
+ lasso_release(authentication->private_data);
authentication->private_data = NULL;
G_OBJECT_CLASS(parent_class)->finalize(object);
}
diff --git a/lasso/id-wsf/data_service.c b/lasso/id-wsf/data_service.c
index 7377a978..37d71287 100644
--- a/lasso/id-wsf/data_service.c
+++ b/lasso/id-wsf/data_service.c
@@ -1137,7 +1137,7 @@ dispose(GObject *object)
static void
finalize(GObject *object)
{
- g_free(((LassoDataService*)object)->private_data);
+ lasso_release(((LassoDataService*)object)->private_data);
G_OBJECT_CLASS(parent_class)->finalize(object);
}
diff --git a/lasso/id-wsf/discovery.c b/lasso/id-wsf/discovery.c
index 5a7d39fb..1cf02698 100644
--- a/lasso/id-wsf/discovery.c
+++ b/lasso/id-wsf/discovery.c
@@ -425,7 +425,7 @@ lasso_discovery_build_modify_response_msg(LassoDiscovery *discovery)
if (new_entry_ids) {
response->newEntryIDs = g_strdup(new_entry_ids);
- g_free(new_entry_ids);
+ lasso_release(new_entry_ids);
}
if (res != 0) {
@@ -1247,7 +1247,7 @@ static void
finalize(GObject *object)
{
LassoDiscovery *discovery = LASSO_DISCOVERY(object);
- g_free(discovery->private_data);
+ lasso_release(discovery->private_data);
discovery->private_data = NULL;
G_OBJECT_CLASS(parent_class)->finalize(object);
}
diff --git a/lasso/id-wsf/wsf_profile.c b/lasso/id-wsf/wsf_profile.c
index abaa26d9..79075ff8 100644
--- a/lasso/id-wsf/wsf_profile.c
+++ b/lasso/id-wsf/wsf_profile.c
@@ -1064,7 +1064,7 @@ static void
finalize(GObject *object)
{
LassoWsfProfile *profile = LASSO_WSF_PROFILE(object);
- g_free(profile->private_data);
+ lasso_release(profile->private_data);
profile->private_data = NULL;
G_OBJECT_CLASS(parent_class)->finalize(object);
}
diff --git a/lasso/registry.c b/lasso/registry.c
index 81bcf23c..f7f27575 100644
--- a/lasso/registry.c
+++ b/lasso/registry.c
@@ -187,7 +187,7 @@ void lasso_registry_destroy(LassoRegistry *registry)
registry->direct_mapping = NULL;
g_hash_table_destroy(registry->functional_mapping);
registry->functional_mapping = NULL;
- g_free(registry);
+ lasso_release(registry);
}
static LassoRegistryTranslationFunction lasso_registry_get_translation_function(GHashTable *functional_mappings, GQuark from_ns_quark, GQuark to_ns_quark)
diff --git a/lasso/saml-2.0/assertion_query.c b/lasso/saml-2.0/assertion_query.c
index ddf8ad7e..f549940d 100644
--- a/lasso/saml-2.0/assertion_query.c
+++ b/lasso/saml-2.0/assertion_query.c
@@ -431,7 +431,7 @@ static void
finalize(GObject *object)
{
LassoAssertionQuery *profile = LASSO_ASSERTION_QUERY(object);
- g_free(profile->private_data);
+ lasso_release(profile->private_data);
profile->private_data = NULL;
G_OBJECT_CLASS(parent_class)->finalize(object);
}
diff --git a/lasso/saml-2.0/ecp.c b/lasso/saml-2.0/ecp.c
index b2667d24..655162ce 100644
--- a/lasso/saml-2.0/ecp.c
+++ b/lasso/saml-2.0/ecp.c
@@ -92,7 +92,7 @@ static void
finalize(GObject *object)
{
LassoEcp *ecp = LASSO_ECP(object);
- g_free(ecp->private_data);
+ lasso_release(ecp->private_data);
ecp->private_data = NULL;
G_OBJECT_CLASS(parent_class)->finalize(object);
diff --git a/lasso/saml-2.0/provider.c b/lasso/saml-2.0/provider.c
index 688bf257..bcc27b5d 100644
--- a/lasso/saml-2.0/provider.c
+++ b/lasso/saml-2.0/provider.c
@@ -464,7 +464,7 @@ lasso_saml20_provider_check_assertion_consumer_service_url(LassoProvider *provid
candidate = NULL;
}
}
- g_free(name);
+ lasso_release(name);
g_list_free(r);
if (candidate)
@@ -541,7 +541,7 @@ helper_binding_by_url(char *key, GList *value, struct HelperBindingByUrl *data)
if (end) {
key = g_strndup(key, (ptrdiff_t)(end-key));
data->binding = identifier_to_binding_uri(key);
- g_free(key);
+ lasso_release(key);
} else {
data->binding = identifier_to_binding_uri(key);
}
diff --git a/lasso/saml-2.0/server.c b/lasso/saml-2.0/server.c
index 41763fc8..4c7a758f 100644
--- a/lasso/saml-2.0/server.c
+++ b/lasso/saml-2.0/server.c
@@ -22,6 +22,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include "../utils.h"
#include "../xml/private.h"
#include "serverprivate.h"
#include "../id-ff/serverprivate.h"
@@ -70,7 +71,7 @@ lasso_saml20_server_load_affiliation(LassoServer *server, xmlNode *node)
message(G_LOG_LEVEL_WARNING,
"Provider %s in more than one affiliation",
provider->ProviderID);
- g_free(provider->private_data->affiliation_owner_id);
+ lasso_release_string(provider->private_data->affiliation_owner_id);
}
provider->private_data->affiliation_owner_id = g_strdup(owner_id);
provider->private_data->affiliation_id = g_strdup(affiliation_id);
diff --git a/lasso/xml/lib_federation_termination_notification.c b/lasso/xml/lib_federation_termination_notification.c
index aed69fdd..4758921a 100644
--- a/lasso/xml/lib_federation_termination_notification.c
+++ b/lasso/xml/lib_federation_termination_notification.c
@@ -21,7 +21,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-
+#include "../utils.h"
#include "private.h"
#include "lib_federation_termination_notification.h"
#include <libxml/uri.h>
@@ -98,7 +98,7 @@ build_query(LassoNode *node)
t = xmlURIEscapeStr((xmlChar*)request->RelayState, NULL);
s = g_strdup_printf((char*)t, "%s&RelayState=%s", query, request->RelayState);
xmlFree(t);
- g_free(query);
+ lasso_release(query);
query = s;
}
diff --git a/lasso/xml/saml-2.0/samlp2_request_abstract.c b/lasso/xml/saml-2.0/samlp2_request_abstract.c
index 810ede28..9eaa187f 100644
--- a/lasso/xml/saml-2.0/samlp2_request_abstract.c
+++ b/lasso/xml/saml-2.0/samlp2_request_abstract.c
@@ -108,7 +108,7 @@ build_query(LassoNode *node)
return NULL;
}
ret = g_strdup_printf(LASSO_SAML2_FIELD_REQUEST "=%s", deflated_message);
- g_free(deflated_message);
+ lasso_release(deflated_message);
return ret;
}
diff --git a/lasso/xml/saml-2.0/samlp2_status_response.c b/lasso/xml/saml-2.0/samlp2_status_response.c
index f93931ef..9cf004f8 100644
--- a/lasso/xml/saml-2.0/samlp2_status_response.c
+++ b/lasso/xml/saml-2.0/samlp2_status_response.c
@@ -107,7 +107,7 @@ build_query(LassoNode *node)
return NULL;
}
ret = g_strdup_printf(LASSO_SAML2_FIELD_RESPONSE "=%s", deflated_message);
- g_free(deflated_message);
+ lasso_release(deflated_message);
return ret;
}
diff --git a/lasso/xml/saml_assertion.c b/lasso/xml/saml_assertion.c
index 605cefc8..2e3afcc7 100644
--- a/lasso/xml/saml_assertion.c
+++ b/lasso/xml/saml_assertion.c
@@ -136,8 +136,8 @@ insure_namespace(xmlNode *xmlnode, xmlNs *ns)
(xmlChar*)typename);
}
}
- g_free(gtypename);
- g_free(typename);
+ lasso_release(gtypename);
+ lasso_release(typename);
}
insure_namespace(t, ns);
diff --git a/lasso/xml/tools.c b/lasso/xml/tools.c
index 62c413c7..d6aa5ef5 100644
--- a/lasso/xml/tools.c
+++ b/lasso/xml/tools.c
@@ -520,10 +520,10 @@ lasso_query_sign(char *query, LassoSignatureMethod sign_method, const char *priv
}
done:
- g_free(new_query);
+ lasso_release(new_query);
xmlFree(digest);
BIO_free(bio);
- g_free(sigret);
+ lasso_release(sigret);
xmlFree(b64_sigret);
xmlFree(e_b64_sigret);
@@ -1074,14 +1074,14 @@ lasso_node_build_deflated_query(LassoNode *node)
}
}
if (rc != Z_OK) {
- g_free(ret);
+ lasso_release(ret);
message(G_LOG_LEVEL_CRITICAL, "Failed to deflate");
return NULL;
}
b64_ret = xmlSecBase64Encode(ret, stream.total_out, 0);
xmlOutputBufferClose(buf);
- g_free(ret);
+ lasso_release(ret);
ret = xmlURIEscapeStr(b64_ret, NULL);
rret = g_strdup((char*)ret);
@@ -1417,7 +1417,7 @@ lasso_xml_parse_message(const char *message, LassoMessageFormat constraint, xmlD
if (rc >= 0) {
b64 = TRUE;
} else {
- g_free(msg);
+ lasso_release(msg);
msg = (char*)message;
}
}
@@ -1451,7 +1451,7 @@ lasso_xml_parse_message(const char *message, LassoMessageFormat constraint, xmlD
goto cleanup;
}
if (b64) {
- g_free(msg);
+ lasso_release(msg);
rc = LASSO_MESSAGE_FORMAT_BASE64;
goto cleanup;
}
@@ -1760,7 +1760,7 @@ lasso_xml_parse_file(const char *filepath)
xmlDocPtr ret;
ret = lasso_xml_parse_memory(file_content, file_length);
- g_free(file_content);
+ lasso_release(file_content);
return ret;
} else {
message(G_LOG_LEVEL_CRITICAL, "Cannot read XML file %s: %s", filepath, error->message);
diff --git a/lasso/xml/ws/wsse_username_token.c b/lasso/xml/ws/wsse_username_token.c
index ad71d216..bd407174 100644
--- a/lasso/xml/ws/wsse_username_token.c
+++ b/lasso/xml/ws/wsse_username_token.c
@@ -243,7 +243,7 @@ _lasso_wsse_username_token_compute_digest(LassoWsseUsernameToken *wsse_username_
memcpy(buffer + nonce_len, wsse_username_token->Created, created_len);
memcpy(buffer + nonce_len + created_len, password, password_len);
result = g_base64_encode((guchar*)buffer, nonce_len + created_len + password_len);
- g_free(buffer);
+ lasso_release(buffer);
return result;
}
@@ -297,7 +297,7 @@ lasso_wsse_username_token_check_password(LassoWsseUsernameToken *wsse_username_t
if (strcmp(private->Password, digest) != 0) {
rc = LASSO_WSSEC_ERROR_BAD_PASSWORD;
}
- g_free(digest);
+ lasso_release(digest);
break;
case LASSO_WSSE_USERNAME_TOKEN_PASSWORD_TYPE_TEXT:
if (strcmp(private->Password, password) != 0) {
@@ -360,12 +360,12 @@ lasso_wsse_username_token_derive_key(LassoWsseUsernameToken *wsse_username_token
}
iteration--;
}
- g_free(buffer);
+ lasso_release(buffer);
result = g_malloc(20);
memcpy(result, hash1, 20);
exit:
- g_free(salt);
+ lasso_release(salt);
return result;
}
diff --git a/lasso/xml/xml.c b/lasso/xml/xml.c
index ef80bcde..0541272a 100644
--- a/lasso/xml/xml.c
+++ b/lasso/xml/xml.c
@@ -620,7 +620,7 @@ lasso_node_init_from_query(LassoNode *node, const char *query)
xmlFree(query_fields[i]);
query_fields[i] = NULL;
}
- g_free(query_fields);
+ lasso_release(query_fields);
return rc;
}
@@ -1570,9 +1570,9 @@ base_class_finalize(LassoNodeClass *class)
xmlFreeNs(data->ns);
}
if (data->node_name) {
- g_free(data->node_name);
+ lasso_release(data->node_name);
}
- g_free(class->node_data);
+ lasso_release(class->node_data);
class->node_data = NULL;
}
}
@@ -1988,7 +1988,7 @@ lasso_node_init_from_message_with_format(LassoNode *node, const char *message, L
if (rc >= 0) {
b64 = TRUE;
} else {
- g_free(msg);
+ lasso_release(msg);
msg = (char*)message;
}
}
@@ -2024,7 +2024,7 @@ lasso_node_init_from_message_with_format(LassoNode *node, const char *message, L
goto cleanup;
}
if (b64) {
- g_free(msg);
+ lasso_release(msg);
rc = LASSO_MESSAGE_FORMAT_BASE64;
goto cleanup;
}
@@ -2107,7 +2107,7 @@ void
lasso_node_class_set_nodename(LassoNodeClass *klass, char *name)
{
if (klass->node_data->node_name)
- g_free(klass->node_data->node_name);
+ lasso_release(klass->node_data->node_name);
klass->node_data->node_name = g_strdup(name);
}
@@ -2303,7 +2303,7 @@ lasso_node_build_xmlNode_from_snippets(LassoNode *node, xmlNode *xmlnode,
g_assert_not_reached();
}
if (snippet->type & SNIPPET_INTEGER)
- g_free(str);
+ lasso_release(str);
}
if (snippet_any_attribute) {
@@ -2361,7 +2361,7 @@ void lasso_node_add_signature_template(LassoNode *node, xmlNode *xmlnode,
uri = g_strdup_printf("#%s", id);
reference = xmlSecTmplSignatureAddReference(signature,
xmlSecTransformSha1Id, NULL, (xmlChar*)uri, NULL);
- g_free(uri);
+ lasso_release(uri);
/* add enveloped transform */
xmlSecTmplReferenceAddTransform(reference, xmlSecTransformEnvelopedId);
@@ -2591,7 +2591,7 @@ lasso_node_build_query_from_snippets(LassoNode *node)
if (s->len)
g_string_append(s, "&");
g_string_append(s, v);
- g_free(v);
+ lasso_release(v);
continue;
}
if (v) {
@@ -2607,7 +2607,7 @@ lasso_node_build_query_from_snippets(LassoNode *node)
xmlFree(t);
}
if (v)
- g_free(v);
+ lasso_release(v);
}
return g_string_free(s, FALSE);