diff options
| author | Frederic Peters <fpeters@entrouvert.com> | 2006-01-23 14:05:59 +0000 |
|---|---|---|
| committer | Frederic Peters <fpeters@entrouvert.com> | 2006-01-23 14:05:59 +0000 |
| commit | 194ea564b50822321f98cef9adc92cfdbddaa13a (patch) | |
| tree | a75c5ddad6863dee42e3a06f9ab132d2404a8842 | |
| parent | ff1d55d07ee4dc9931696d5222cc72945cdae48a (diff) | |
don't segfault when lasso_logout_build_request_msg is erroneously called without lasso_logout_init_request before
| -rw-r--r-- | lasso/id-ff/logout.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c index 81b9da8a..2a9486c4 100644 --- a/lasso/id-ff/logout.c +++ b/lasso/id-ff/logout.c @@ -76,6 +76,11 @@ lasso_logout_build_request_msg(LassoLogout *logout) profile = LASSO_PROFILE(logout); + if (profile->remote_providerID == NULL) { + /* this means lasso_logout_init_request was not called before */ + return critical_error(LASSO_PROFILE_ERROR_MISSING_REMOTE_PROVIDERID); + } + /* get remote provider */ remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); @@ -215,6 +220,8 @@ lasso_logout_build_response_msg(LassoLogout *logout) url = lasso_provider_get_metadata_one(provider, "SingleLogoutServiceReturnURL"); if (url == NULL) { + /* XXX: but wouldn't it be nice to provide a fallback msgUrl, + * something like the document root of the other site ? */ return critical_error(LASSO_PROFILE_ERROR_UNKNOWN_PROFILE_URL); } query = lasso_node_export_to_query(profile->response, |
