summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-09-07 14:22:23 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-09-07 14:22:23 +0000
commitdcef5a4591b2f2522040c5ae15bf6296b6e0cdc7 (patch)
treec3536e110dab7f5916f20538397c18bd5ff0b1c4
parenta6b6a9b659f2ed09f865b9618bc31c03be4dc676 (diff)
downloadlasso-dcef5a4591b2f2522040c5ae15bf6296b6e0cdc7.tar.gz
lasso-dcef5a4591b2f2522040c5ae15bf6296b6e0cdc7.tar.xz
lasso-dcef5a4591b2f2522040c5ae15bf6296b6e0cdc7.zip
Fixed a seg fault in lasso_logout_get_next_providerID()
-rw-r--r--lasso/id-ff/logout.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c
index 11561ed4..e78a7204 100644
--- a/lasso/id-ff/logout.c
+++ b/lasso/id-ff/logout.c
@@ -925,16 +925,12 @@ lasso_logout_validate_request(LassoLogout *logout)
goto done;
}
- /* get the status code */
- statusCode = lasso_node_get_child(profile->response, "StatusCode", NULL, NULL);
- statusCode_class = LASSO_NODE_GET_CLASS(statusCode);
-
/* Get the name identifier */
nameIdentifier = lasso_node_get_child(profile->request, "NameIdentifier",
NULL, NULL);
if (nameIdentifier == NULL) {
message(G_LOG_LEVEL_CRITICAL, "Name identifier not found in logout request\n");
- statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeFederationDoesNotExist);
+ lasso_profile_set_response_status(profile, lassoLibStatusCodeFederationDoesNotExist);
ret = -1;
goto done;
}
@@ -943,14 +939,14 @@ lasso_logout_validate_request(LassoLogout *logout)
if (profile->identity == NULL) {
message(G_LOG_LEVEL_WARNING, "Identity not found\n");
/* FIXME : use RequestDenied if no identity found ? */
- statusCode_class->set_prop(statusCode, "Value", lassoSamlStatusCodeRequestDenied);
+ lasso_profile_set_response_status(profile, lassoSamlStatusCodeRequestDenied);
ret = -1;
goto done;
}
assertion = lasso_session_get_assertion(profile->session, remote_providerID);
if (assertion == NULL) {
message(G_LOG_LEVEL_WARNING, "%s has no assertion\n", remote_providerID);
- statusCode_class->set_prop(statusCode, "Value", lassoSamlStatusCodeRequestDenied);
+ lasso_profile_set_response_status(profile, lassoSamlStatusCodeRequestDenied);
ret = -1;
goto done;
}
@@ -960,14 +956,14 @@ lasso_logout_validate_request(LassoLogout *logout)
federation = lasso_identity_get_federation(profile->identity, remote_providerID);
if (federation == NULL) {
message(G_LOG_LEVEL_WARNING, "No federation for %s\n", remote_providerID);
- statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeFederationDoesNotExist);
+ lasso_profile_set_response_status(profile, lassoLibStatusCodeFederationDoesNotExist);
ret = -1;
goto done;
}
if (lasso_federation_verify_nameIdentifier(federation, nameIdentifier) == FALSE) {
message(G_LOG_LEVEL_WARNING, "No name identifier for %s\n", remote_providerID);
- statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeFederationDoesNotExist);
+ lasso_profile_set_response_status(profile, lassoLibStatusCodeFederationDoesNotExist);
ret = -1;
goto done;
}
@@ -1015,7 +1011,7 @@ lasso_logout_validate_request(LassoLogout *logout)
}
if (all_http_soap==FALSE) {
- statusCode_class->set_prop(statusCode, "Value", lassoLibStatusCodeUnsupportedProfile);
+ lasso_profile_set_response_status(profile, lassoLibStatusCodeUnsupportedProfile);
ret = LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE;
goto done;
}