summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2006-01-23 14:05:59 +0000
committerFrederic Peters <fpeters@entrouvert.com>2006-01-23 14:05:59 +0000
commit194ea564b50822321f98cef9adc92cfdbddaa13a (patch)
treea75c5ddad6863dee42e3a06f9ab132d2404a8842
parentff1d55d07ee4dc9931696d5222cc72945cdae48a (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.c7
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,