summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValery Febvre <vfebvre at easter-eggs.com>2004-07-16 16:39:14 +0000
committerValery Febvre <vfebvre at easter-eggs.com>2004-07-16 16:39:14 +0000
commitf4f58e058d3f4e974e53443afe6b944d04046fb0 (patch)
treec07577bc28e7e3ea231ee03342dabace3f2113af
parent0dde5d12c439a13789a318b43b9293f02fd07ec3 (diff)
downloadlasso-f4f58e058d3f4e974e53443afe6b944d04046fb0.tar.gz
lasso-f4f58e058d3f4e974e53443afe6b944d04046fb0.tar.xz
lasso-f4f58e058d3f4e974e53443afe6b944d04046fb0.zip
Added somes g_free() and lasso_node_destroy() to fixe memory leaks
-rw-r--r--lasso/Attic/protocols/identity.c4
-rw-r--r--lasso/Attic/protocols/provider.c5
-rw-r--r--lasso/id-ff/profile_context.c16
-rw-r--r--lasso/id-ff/server.c4
-rw-r--r--lasso/id-ff/user.c42
5 files changed, 41 insertions, 30 deletions
diff --git a/lasso/Attic/protocols/identity.c b/lasso/Attic/protocols/identity.c
index 55d8894e..380b8fff 100644
--- a/lasso/Attic/protocols/identity.c
+++ b/lasso/Attic/protocols/identity.c
@@ -78,14 +78,14 @@ void
lasso_identity_set_local_nameIdentifier(LassoIdentity *identity,
LassoNode *nameIdentifier)
{
- identity->local_nameIdentifier = nameIdentifier;
+ identity->local_nameIdentifier = lasso_node_copy(nameIdentifier);
}
void
lasso_identity_set_remote_nameIdentifier(LassoIdentity *identity,
LassoNode *nameIdentifier)
{
- identity->remote_nameIdentifier = nameIdentifier;
+ identity->remote_nameIdentifier = lasso_node_copy(nameIdentifier);
}
gboolean
diff --git a/lasso/Attic/protocols/provider.c b/lasso/Attic/protocols/provider.c
index bb359c53..18bbe7a2 100644
--- a/lasso/Attic/protocols/provider.c
+++ b/lasso/Attic/protocols/provider.c
@@ -55,8 +55,9 @@ lasso_provider_dump(LassoProvider *provider)
provider_class->set_prop(provider_node, LASSO_PROVIDER_CA_CERTIFICATE_NODE, provider->ca_certificate);
provider_dump = lasso_node_export(provider_node);
- //lasso_node_destroy(metadata_node);
- //lasso_node_destroy(provider_node);
+
+ lasso_node_destroy(metadata_node);
+ lasso_node_destroy(provider_node);
return(provider_dump);
}
diff --git a/lasso/id-ff/profile_context.c b/lasso/id-ff/profile_context.c
index 7f05dce1..2cb867d7 100644
--- a/lasso/id-ff/profile_context.c
+++ b/lasso/id-ff/profile_context.c
@@ -48,6 +48,7 @@ lasso_profile_context_dump(LassoProfileContext *ctx,
const gchar *name)
{
LassoNode *node;
+ LassoNode *request, *response;
gchar *child_dump, *dump = NULL;
node = lasso_node_new();
@@ -59,10 +60,14 @@ lasso_profile_context_dump(LassoProfileContext *ctx,
}
if (ctx->request != NULL) {
- LASSO_NODE_GET_CLASS(node)->add_child(node, lasso_node_copy(ctx->request), FALSE);
+ request = lasso_node_copy(ctx->request);
+ LASSO_NODE_GET_CLASS(node)->add_child(node, request, FALSE);
+ lasso_node_destroy(request);
}
if (ctx->response != NULL) {
- LASSO_NODE_GET_CLASS(node)->add_child(node, lasso_node_copy(ctx->response), FALSE);
+ request = lasso_node_copy(ctx->response);
+ LASSO_NODE_GET_CLASS(node)->add_child(node, response, FALSE);
+ lasso_node_destroy(response);
}
if (ctx->remote_providerID != NULL) {
@@ -87,11 +92,8 @@ gint
lasso_profile_context_set_remote_providerID(LassoProfileContext *ctx,
gchar *providerID)
{
- if (ctx->remote_providerID) {
- free(ctx->remote_providerID);
- }
- ctx->remote_providerID = (char *)malloc(strlen(providerID)+1);
- strcpy(ctx->remote_providerID, providerID);
+ g_free(ctx->remote_providerID);
+ ctx->remote_providerID = g_strdup(providerID);
return (1);
}
diff --git a/lasso/id-ff/server.c b/lasso/id-ff/server.c
index 8fdea1ce..af9deb7e 100644
--- a/lasso/id-ff/server.c
+++ b/lasso/id-ff/server.c
@@ -167,8 +167,8 @@ lasso_server_get_providerID_from_hash(LassoServer *server,
return(providerID);
}
else{
-/* xmlFree(providerID); */
-/* xmlFree(hash_providerID); */
+ g_free(providerID);
+ g_free(hash_providerID);
}
}
diff --git a/lasso/id-ff/user.c b/lasso/id-ff/user.c
index b9830791..76ecd818 100644
--- a/lasso/id-ff/user.c
+++ b/lasso/id-ff/user.c
@@ -78,7 +78,7 @@ lasso_user_add_identity(LassoUser *user,
g_return_val_if_fail(remote_providerID!=NULL, -2);
g_return_val_if_fail(identity!=NULL, -3);
- debug(INFO, "Add an identity for %s\n", remote_providerID);
+ debug(DEBUG, "Add an identity for %s\n", remote_providerID);
g_hash_table_insert(user->identities, g_strdup(remote_providerID), identity);
return(0);
@@ -288,47 +288,50 @@ lasso_user_new_from_dump(gchar *dump)
xmlChar *remote_providerID;
- g_return_val_if_fail(dump!=NULL, NULL);
+ g_return_val_if_fail(dump != NULL, NULL);
/* new object */
user = LASSO_USER(g_object_new(LASSO_TYPE_USER, NULL));
/* get user */
user_node = lasso_node_new_from_dump(dump);
- if(user_node==NULL){
- debug(WARNING, "Can' create a user from dump\n");
- return(NULL);
+ if (user_node == NULL) {
+ debug(WARNING, "Can't create a user from dump.\n");
+ return (NULL);
}
/* get assertions */
assertions_node = lasso_node_get_child(user_node, LASSO_USER_ASSERTIONS_NODE, NULL);
- if(assertions_node){
+ if (assertions_node != NULL) {
assertions_class = LASSO_NODE_GET_CLASS(assertions_node);
assertions_xmlNode = assertions_class->get_xmlNode(assertions_node);
assertion_xmlNode = assertions_xmlNode->children;
- while(assertion_xmlNode){
+ while (assertion_xmlNode != NULL) {
/* assertion xmlNode */
- if(assertion_xmlNode->type==XML_ELEMENT_NODE && xmlStrEqual(assertion_xmlNode->name, LASSO_USER_ASSERTION_NODE)){
+ if (assertion_xmlNode->type==XML_ELEMENT_NODE && xmlStrEqual(assertion_xmlNode->name, LASSO_USER_ASSERTION_NODE)) {
/* assertion node */
assertion_node = lasso_node_new_from_xmlNode(assertion_xmlNode);
remote_providerID = lasso_node_get_attr_value(assertion_node, LASSO_USER_REMOTE_PROVIDERID_NODE);
lasso_user_add_assertion(user, remote_providerID, assertion_node);
+ g_free(remote_providerID);
+ lasso_node_destroy(assertion_node);
}
assertion_xmlNode = assertion_xmlNode->next;
}
}
+ lasso_node_destroy(assertions_node);
/* identities*/
identities_node = lasso_node_get_child(user_node, LASSO_USER_IDENTITIES_NODE, NULL);
- if(identities_node){
+ if (identities_node != NULL) {
identities_class = LASSO_NODE_GET_CLASS(identities_node);
identities_xmlNode = identities_class->get_xmlNode(identities_node);
identity_xmlNode = identities_xmlNode->children;
- while(identity_xmlNode){
- if(identity_xmlNode->type==XML_ELEMENT_NODE && xmlStrEqual(identity_xmlNode->name, LASSO_USER_IDENTITY_NODE)){
+ while (identity_xmlNode != NULL) {
+ if (identity_xmlNode->type==XML_ELEMENT_NODE && xmlStrEqual(identity_xmlNode->name, LASSO_USER_IDENTITY_NODE)) {
identity_node = lasso_node_new_from_xmlNode(identity_xmlNode);
remote_providerID = lasso_node_get_attr_value(identity_node, LASSO_IDENTITY_REMOTE_PROVIDERID_NODE);
@@ -337,30 +340,35 @@ lasso_user_new_from_dump(gchar *dump)
/* local name identifier */
local_nameIdentifier_node = lasso_node_get_child(identity_node, LASSO_IDENTITY_LOCAL_NAME_IDENTIFIER_NODE, NULL);
- if(local_nameIdentifier_node){
+ if (local_nameIdentifier_node != NULL) {
nameIdentifier_node = lasso_node_get_child(local_nameIdentifier_node, "NameIdentifier", NULL);
lasso_identity_set_local_nameIdentifier(identity, nameIdentifier_node);
+ lasso_node_destroy(nameIdentifier_node);
+ lasso_node_destroy(local_nameIdentifier_node);
}
/* remote name identifier */
remote_nameIdentifier_node = lasso_node_get_child(identity_node, LASSO_IDENTITY_REMOTE_NAME_IDENTIFIER_NODE, NULL);
- if(remote_nameIdentifier_node){
+ if (remote_nameIdentifier_node != NULL) {
nameIdentifier_node = lasso_node_get_child(remote_nameIdentifier_node, "NameIdentifier", NULL);
lasso_identity_set_remote_nameIdentifier(identity, nameIdentifier_node);
+ lasso_node_destroy(nameIdentifier_node);
+ lasso_node_destroy(remote_nameIdentifier_node);
}
lasso_user_add_identity(user, remote_providerID, identity);
- //lasso_node_destroy(identity_node);
+ g_free(remote_providerID);
+ lasso_node_destroy(identity_node);
}
identity_xmlNode = identity_xmlNode->next;
}
- //lasso_node_destroy(identities_node);
+ lasso_node_destroy(identities_node);
}
- //lasso_node_destroy(user_node);
+ lasso_node_destroy(user_node);
- return(user);
+ return (user);
}