diff options
| author | Damien Laniel <dlaniel@entrouvert.com> | 2007-06-07 14:31:20 +0000 |
|---|---|---|
| committer | Damien Laniel <dlaniel@entrouvert.com> | 2007-06-07 14:31:20 +0000 |
| commit | 3923e640cc61493f22d3c6d955339675ec85d02e (patch) | |
| tree | 070523d8bffbe323062d20219eecab27608d46c3 | |
| parent | 36dbe4155eae4341aae39f58e2fa2aa7536e111e (diff) | |
check all function arguments in session and identity
| -rw-r--r-- | lasso/id-ff/identity.c | 30 | ||||
| -rw-r--r-- | lasso/id-ff/session.c | 27 |
2 files changed, 44 insertions, 13 deletions
diff --git a/lasso/id-ff/identity.c b/lasso/id-ff/identity.c index 788f06d4..5f9f972c 100644 --- a/lasso/id-ff/identity.c +++ b/lasso/id-ff/identity.c @@ -82,6 +82,9 @@ lasso_identity_add_federation(LassoIdentity *identity, LassoFederation *federati LassoFederation* lasso_identity_get_federation(LassoIdentity *identity, const char *providerID) { + g_return_val_if_fail(LASSO_IS_IDENTITY(identity), NULL); + g_return_val_if_fail(providerID != NULL, NULL); + return g_hash_table_lookup(identity->federations, providerID); } @@ -97,10 +100,14 @@ lasso_identity_get_federation(LassoIdentity *identity, const char *providerID) gint lasso_identity_remove_federation(LassoIdentity *identity, const char *providerID) { + g_return_val_if_fail(LASSO_IS_IDENTITY(identity), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); + g_return_val_if_fail(providerID != NULL, LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); + if (g_hash_table_remove(identity->federations, providerID) == FALSE) { return LASSO_PROFILE_ERROR_FEDERATION_NOT_FOUND; } identity->is_dirty = TRUE; + return 0; } @@ -128,7 +135,11 @@ lasso_identity_add_resource_offering(LassoIdentity *identity, char entry_id_s[20]; GList *iter; LassoDiscoResourceOffering *t; - + + g_return_val_if_fail(LASSO_IS_IDENTITY(identity), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); + g_return_val_if_fail(LASSO_IS_DISCO_RESOURCE_OFFERING(offering), + LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); + g_snprintf(entry_id_s, 18, "%d", entry_id); iter = identity->private_data->resource_offerings; while (iter) { @@ -140,7 +151,7 @@ lasso_identity_add_resource_offering(LassoIdentity *identity, iter = identity->private_data->resource_offerings; /* rewind */ } } - + offering->entryID = g_strdup(entry_id_s); identity->private_data->resource_offerings = g_list_append( identity->private_data->resource_offerings, g_object_ref(offering)); @@ -163,7 +174,10 @@ lasso_identity_remove_resource_offering(LassoIdentity *identity, const char *ent { GList *iter; LassoDiscoResourceOffering *t; - + + g_return_val_if_fail(LASSO_IS_IDENTITY(identity), FALSE); + g_return_val_if_fail(entryID != NULL, LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); + iter = identity->private_data->resource_offerings; while (iter) { t = iter->data; @@ -186,7 +200,9 @@ lasso_identity_get_offerings(LassoIdentity *identity, const char *service_type) GList *iter; LassoDiscoResourceOffering *t; GList *result = NULL; - + + g_return_val_if_fail(LASSO_IS_IDENTITY(identity), NULL); + iter = identity->private_data->resource_offerings; while (iter) { t = iter->data; @@ -206,6 +222,9 @@ lasso_identity_get_resource_offering(LassoIdentity *identity, const char *entryI GList *iter; LassoDiscoResourceOffering *t; + g_return_val_if_fail(LASSO_IS_IDENTITY(identity), NULL); + g_return_val_if_fail(entryID != NULL, NULL); + iter = identity->private_data->resource_offerings; while (iter) { t = iter->data; @@ -221,6 +240,9 @@ lasso_identity_get_resource_offering(LassoIdentity *identity, const char *entryI gint lasso_identity_add_svc_md_id(LassoIdentity *identity, gchar *svcMDID) { + g_return_val_if_fail(LASSO_IS_IDENTITY(identity), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); + g_return_val_if_fail(svcMDID != NULL, LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); + identity->private_data->svcMDID = g_list_append( identity->private_data->svcMDID, g_strdup(svcMDID)); identity->is_dirty = TRUE; diff --git a/lasso/id-ff/session.c b/lasso/id-ff/session.c index f1162983..13697a31 100644 --- a/lasso/id-ff/session.c +++ b/lasso/id-ff/session.c @@ -59,7 +59,7 @@ struct _LassoSessionPrivate gint lasso_session_add_assertion(LassoSession *session, char *providerID, LassoNode *assertion) { - g_return_val_if_fail(session != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); + g_return_val_if_fail(LASSO_IS_SESSION(session), LASSO_PARAM_ERROR_INVALID_VALUE); g_return_val_if_fail(providerID != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); g_return_val_if_fail(assertion != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); @@ -83,7 +83,7 @@ lasso_session_add_assertion(LassoSession *session, char *providerID, LassoNode * gint lasso_session_add_status(LassoSession *session, char *providerID, LassoNode *status) { - g_return_val_if_fail(session != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); + g_return_val_if_fail(LASSO_IS_SESSION(session), LASSO_PARAM_ERROR_INVALID_VALUE); g_return_val_if_fail(providerID != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); g_return_val_if_fail(status != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); @@ -109,6 +109,8 @@ lasso_session_add_status(LassoSession *session, char *providerID, LassoNode *sta LassoNode* lasso_session_get_assertion(LassoSession *session, gchar *providerID) { + g_return_val_if_fail(LASSO_IS_SESSION(session), NULL); + return g_hash_table_lookup(session->assertions, providerID); } @@ -118,7 +120,6 @@ add_assertion_to_list(gchar *key, LassoLibAssertion *value, GList **list) *list = g_list_append(*list, value); } - /** * lasso_session_get_assertions * @session: a #LassoSession @@ -246,12 +247,16 @@ lasso_session_init_provider_ids(LassoSession *session) gboolean lasso_session_is_empty(LassoSession *session) { - if (session == NULL) return TRUE; + if (session == NULL) { + return TRUE; + } - if (g_hash_table_size(session->assertions)) + if (g_hash_table_size(session->assertions)) { return FALSE; - if (g_hash_table_size(session->private_data->status)) + } + if (g_hash_table_size(session->private_data->status)) { return FALSE; + } return TRUE; } @@ -268,7 +273,7 @@ lasso_session_is_empty(LassoSession *session) gint lasso_session_remove_assertion(LassoSession *session, gchar *providerID) { - g_return_val_if_fail(session != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); + g_return_val_if_fail(LASSO_IS_SESSION(session), LASSO_PARAM_ERROR_INVALID_VALUE); g_return_val_if_fail(providerID != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); if (g_hash_table_remove(session->assertions, providerID)) { @@ -309,7 +314,8 @@ lasso_session_add_endpoint_reference(LassoSession *session, LassoWsAddrEndpointR GList *i; g_return_val_if_fail(LASSO_IS_SESSION(session), LASSO_PARAM_ERROR_INVALID_VALUE); - + g_return_val_if_fail(LASSO_IS_WSA_ENDPOINT_REFERENCE(epr), LASSO_PARAM_ERROR_INVALID_VALUE); + for (i = g_list_first(epr->Metadata->any); i != NULL; i = g_list_next(i)) { if (LASSO_IS_IDWSF2_DISCO_SERVICE_TYPE(i->data)) { g_hash_table_insert(session->private_data->eprs, @@ -329,6 +335,7 @@ lasso_session_get_endpoint_reference(LassoSession *session, const gchar *service LassoWsAddrEndpointReference* epr; g_return_val_if_fail(LASSO_IS_SESSION(session), NULL); + g_return_val_if_fail(service_type != NULL, NULL); epr = g_hash_table_lookup(session->private_data->eprs, service_type); if (LASSO_IS_WSA_ENDPOINT_REFERENCE(epr)) { @@ -348,7 +355,9 @@ lasso_session_get_assertion_identity_token(LassoSession *session) LassoIdWsf2SecToken *sec_token; LassoSaml2Assertion *assertion = NULL; - g_return_val_if_fail(LASSO_IS_SESSION(session), NULL); + if (LASSO_IS_SESSION(session) == FALSE) { + return NULL; + } epr = lasso_session_get_endpoint_reference(session, LASSO_IDWSF2_DISCO_HREF); if (! LASSO_IS_WSA_ENDPOINT_REFERENCE(epr)) { |
