diff options
| author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-09-07 14:22:23 +0000 |
|---|---|---|
| committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-09-07 14:22:23 +0000 |
| commit | dcef5a4591b2f2522040c5ae15bf6296b6e0cdc7 (patch) | |
| tree | c3536e110dab7f5916f20538397c18bd5ff0b1c4 | |
| parent | a6b6a9b659f2ed09f865b9618bc31c03be4dc676 (diff) | |
| download | lasso-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.c | 16 |
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; } |
