diff options
| author | Frederic Peters <fpeters@entrouvert.com> | 2004-11-29 19:31:32 +0000 |
|---|---|---|
| committer | Frederic Peters <fpeters@entrouvert.com> | 2004-11-29 19:31:32 +0000 |
| commit | 2ea07eebe111fa8c02f2341af91a39bd1a955d95 (patch) | |
| tree | bca369349b2ff32a92f6f3e79aa6d6c0cd5ec5ce | |
| parent | 06003ba78b0b8427da64a3a71cde513ef9ab6805 (diff) | |
| download | lasso-2ea07eebe111fa8c02f2341af91a39bd1a955d95.tar.gz lasso-2ea07eebe111fa8c02f2341af91a39bd1a955d95.tar.xz lasso-2ea07eebe111fa8c02f2341af91a39bd1a955d95.zip | |
extra consistency check in lasso_session_get_provider_index
| -rw-r--r-- | lasso/id-ff/session.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lasso/id-ff/session.c b/lasso/id-ff/session.c index 0a1ba77a..2e82b875 100644 --- a/lasso/id-ff/session.c +++ b/lasso/id-ff/session.c @@ -73,7 +73,6 @@ lasso_session_get_authentication_method(LassoSession *session, gchar *remote_pro gchar* lasso_session_get_first_providerID(LassoSession *session) { - /* XXX: why didn't it use get_provider_index directly ? */ return lasso_session_get_provider_index(session, 0); } @@ -88,15 +87,17 @@ gchar* lasso_session_get_provider_index(LassoSession *session, gint index) { GList *element; + int length; - if (session->private_data->providerIDs == NULL) { - g_hash_table_foreach(session->assertions, (GHFunc)add_providerID, session); - /* XXX? create list */ - } + length = g_hash_table_size(session->assertions); - if (g_hash_table_size(session->assertions) == 0) + if (length == 0) return NULL; + if (session->private_data->providerIDs == NULL || + g_list_length(session->private_data->providerIDs) != length) + g_hash_table_foreach(session->assertions, (GHFunc)add_providerID, session); + element = g_list_nth(session->private_data->providerIDs, index); if (element == NULL) return NULL; |
