summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2006-01-25 11:18:52 +0000
committerFrederic Peters <fpeters@entrouvert.com>2006-01-25 11:18:52 +0000
commit1bfd2beceb11dd488152ee347507f7ef5c412bf6 (patch)
tree75709beb77be58926ddb5c07c3d100192fe1b3ac
parent267dd3424a929e0b1a0608480fc2dc059e9e778c (diff)
downloadlasso-1bfd2beceb11dd488152ee347507f7ef5c412bf6.tar.gz
lasso-1bfd2beceb11dd488152ee347507f7ef5c412bf6.tar.xz
lasso-1bfd2beceb11dd488152ee347507f7ef5c412bf6.zip
fix memory management for ID-WSF ResourceId
-rw-r--r--lasso/id-ff/login.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c
index 5b5fb69e..6743f2a5 100644
--- a/lasso/id-ff/login.c
+++ b/lasso/id-ff/login.c
@@ -80,7 +80,6 @@ static void lasso_login_build_assertion_artifact(LassoLogin *login);
static void
lasso_login_assertion_add_discovery(LassoLogin *login, LassoSamlAssertion *assertion)
{
- fprintf(stderr, "lasso_login_assertion_add_discovery\n");
#ifdef LASSO_WSF_ENABLED
LassoProfile *profile = LASSO_PROFILE(login);
LassoDiscoResourceOffering *resourceOffering;
@@ -99,7 +98,8 @@ lasso_login_assertion_add_discovery(LassoLogin *login, LassoSamlAssertion *asser
gboolean found;
serviceInstance = lasso_server_get_service(profile->server, LASSO_DISCO_HREF);
- if (LASSO_IS_DISCO_SERVICE_INSTANCE(serviceInstance)) {
+ if (LASSO_IS_DISCO_SERVICE_INSTANCE(serviceInstance) &&
+ login->private_data->resourceId) {
newServiceInstance = lasso_disco_service_instance_copy(serviceInstance);
resourceOffering = lasso_disco_resource_offering_new(newServiceInstance);
@@ -1770,6 +1770,14 @@ dispose(GObject *object)
LassoLogin *login = LASSO_LOGIN(object);
g_free(login->private_data->soap_request_msg);
login->private_data->soap_request_msg = NULL;
+#ifdef LASSO_WSF_ENABLED
+ if (login->private_data->resourceId)
+ lasso_node_destroy(LASSO_NODE(login->private_data->resourceId));
+ login->private_data->resourceId = NULL;
+ if (login->private_data->encryptedResourceId)
+ lasso_node_destroy(LASSO_NODE(login->private_data->encryptedResourceId));
+ login->private_data->encryptedResourceId = NULL;
+#endif
G_OBJECT_CLASS(parent_class)->dispose(object);
}
@@ -1791,6 +1799,10 @@ instance_init(LassoLogin *login)
{
login->private_data = g_new(LassoLoginPrivate, 1);
login->private_data->soap_request_msg = NULL;
+#ifdef LASSO_WSF_ENABLED
+ login->private_data->resourceId = NULL;
+ login->private_data->encryptedResourceId = NULL;
+#endif
login->protocolProfile = 0;
login->assertionArtifact = NULL;