summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Laniel <dlaniel@entrouvert.com>2007-06-07 14:31:20 +0000
committerDamien Laniel <dlaniel@entrouvert.com>2007-06-07 14:31:20 +0000
commit3923e640cc61493f22d3c6d955339675ec85d02e (patch)
tree070523d8bffbe323062d20219eecab27608d46c3
parent36dbe4155eae4341aae39f58e2fa2aa7536e111e (diff)
check all function arguments in session and identity
-rw-r--r--lasso/id-ff/identity.c30
-rw-r--r--lasso/id-ff/session.c27
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)) {