diff options
| author | Valery Febvre <vfebvre at easter-eggs.com> | 2004-07-16 16:39:14 +0000 |
|---|---|---|
| committer | Valery Febvre <vfebvre at easter-eggs.com> | 2004-07-16 16:39:14 +0000 |
| commit | f4f58e058d3f4e974e53443afe6b944d04046fb0 (patch) | |
| tree | c07577bc28e7e3ea231ee03342dabace3f2113af | |
| parent | 0dde5d12c439a13789a318b43b9293f02fd07ec3 (diff) | |
| download | lasso-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.c | 4 | ||||
| -rw-r--r-- | lasso/Attic/protocols/provider.c | 5 | ||||
| -rw-r--r-- | lasso/id-ff/profile_context.c | 16 | ||||
| -rw-r--r-- | lasso/id-ff/server.c | 4 | ||||
| -rw-r--r-- | lasso/id-ff/user.c | 42 |
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); } |
