diff options
| author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-08-27 11:09:27 +0000 |
|---|---|---|
| committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-08-27 11:09:27 +0000 |
| commit | 325f18984a0d4bc2b8b9c2067af901f9d542dedc (patch) | |
| tree | 742a48fee2d6fe3e096d0613d5e7f9cfed3f399d | |
| parent | 31aa53988b3d28ef575004985bbaf300e9dc7b0c (diff) | |
| download | lasso-325f18984a0d4bc2b8b9c2067af901f9d542dedc.tar.gz lasso-325f18984a0d4bc2b8b9c2067af901f9d542dedc.tar.xz lasso-325f18984a0d4bc2b8b9c2067af901f9d542dedc.zip | |
Removed g_assert in samlp_request_abstract object when setting required attributes and elements. Added tests in federation termination notification building from QUERY export for required elements, return NULL if error, notification object if ok
| -rw-r--r-- | lasso/Attic/protocols/federation_termination_notification.c | 43 | ||||
| -rw-r--r-- | lasso/xml/samlp_request_abstract.c | 40 |
2 files changed, 62 insertions, 21 deletions
diff --git a/lasso/Attic/protocols/federation_termination_notification.c b/lasso/Attic/protocols/federation_termination_notification.c index 0f9a9674..e99ef86d 100644 --- a/lasso/Attic/protocols/federation_termination_notification.c +++ b/lasso/Attic/protocols/federation_termination_notification.c @@ -134,36 +134,77 @@ lasso_federation_termination_notification_new_from_query(const gchar *query) /* RequestID */ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "RequestID"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(notification); + return (NULL); + } lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(notification), str); /* MajorVersion */ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MajorVersion"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(notification); + return (NULL); + } lasso_samlp_request_abstract_set_majorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(notification), str); /* MinorVersion */ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "MinorVersion"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(notification); + return (NULL); + } lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(notification), str); /* IssueInstant */ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IssueInstant"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(notification); + return (NULL); + } lasso_samlp_request_abstract_set_issueInstant(LASSO_SAMLP_REQUEST_ABSTRACT(notification), str); /* ProviderID */ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProviderID"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(notification); + return (NULL); + } lasso_lib_federation_termination_notification_set_providerID(LASSO_LIB_FEDERATION_TERMINATION_NOTIFICATION(notification), str); /* NameIdentifier */ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "NameIdentifier"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(notification); + return (NULL); + } identifier = lasso_saml_name_identifier_new(str); str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "NameQualifier"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(notification); + return (NULL); + } lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(identifier), str); str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "Format"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(notification); + return (NULL); + } lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(identifier), str); lasso_lib_federation_termination_notification_set_nameIdentifier(LASSO_LIB_FEDERATION_TERMINATION_NOTIFICATION(notification), LASSO_SAML_NAME_IDENTIFIER(identifier)); - lasso_node_destroy(identifier); + lasso_node_destroy(identifier); + return(notification); } diff --git a/lasso/xml/samlp_request_abstract.c b/lasso/xml/samlp_request_abstract.c index 15c34696..9b02c975 100644 --- a/lasso/xml/samlp_request_abstract.c +++ b/lasso/xml/samlp_request_abstract.c @@ -59,11 +59,11 @@ lasso_samlp_request_abstract_add_respondWith(LassoSamlpRequestAbstract *node, const xmlChar *respondWith) { LassoNodeClass *class; - g_assert(LASSO_IS_SAMLP_REQUEST_ABSTRACT(node)); - g_assert(respondWith != NULL); - class = LASSO_NODE_GET_CLASS(node); - class->new_child(LASSO_NODE (node), "RespondWith", respondWith, TRUE); + if (LASSO_IS_SAMLP_REQUEST_ABSTRACT(node) && respondWith != NULL) { + class = LASSO_NODE_GET_CLASS(node); + class->new_child(LASSO_NODE (node), "RespondWith", respondWith, TRUE); + } } void @@ -71,11 +71,11 @@ lasso_samlp_request_abstract_set_issueInstant(LassoSamlpRequestAbstract *node, const xmlChar *issueInstant) { LassoNodeClass *class; - g_assert(LASSO_IS_SAMLP_REQUEST_ABSTRACT(node)); - g_assert(issueInstant != NULL); - class = LASSO_NODE_GET_CLASS(node); - class->set_prop(LASSO_NODE (node), "IssueInstant", issueInstant); + if (LASSO_IS_SAMLP_REQUEST_ABSTRACT(node) && issueInstant != NULL) { + class = LASSO_NODE_GET_CLASS(node); + class->set_prop(LASSO_NODE (node), "IssueInstant", issueInstant); + } } void @@ -83,11 +83,11 @@ lasso_samlp_request_abstract_set_majorVersion(LassoSamlpRequestAbstract *node, const xmlChar *majorVersion) { LassoNodeClass *class; - g_assert(LASSO_IS_SAMLP_REQUEST_ABSTRACT(node)); - g_assert(majorVersion != NULL); - class = LASSO_NODE_GET_CLASS(node); - class->set_prop(LASSO_NODE (node), "MajorVersion", majorVersion); + if (LASSO_IS_SAMLP_REQUEST_ABSTRACT(node) && majorVersion != NULL) { + class = LASSO_NODE_GET_CLASS(node); + class->set_prop(LASSO_NODE (node), "MajorVersion", majorVersion); + } } void @@ -95,11 +95,11 @@ lasso_samlp_request_abstract_set_minorVersion(LassoSamlpRequestAbstract *node, const xmlChar *minorVersion) { LassoNodeClass *class; - g_assert(LASSO_IS_SAMLP_REQUEST_ABSTRACT(node)); - g_assert(minorVersion != NULL); - class = LASSO_NODE_GET_CLASS(node); - class->set_prop(LASSO_NODE (node), "MinorVersion", minorVersion); + if (LASSO_IS_SAMLP_REQUEST_ABSTRACT(node) && minorVersion != NULL) { + class = LASSO_NODE_GET_CLASS(node); + class->set_prop(LASSO_NODE (node), "MinorVersion", minorVersion); + } } /** @@ -114,11 +114,11 @@ lasso_samlp_request_abstract_set_requestID(LassoSamlpRequestAbstract *node, const xmlChar *requestID) { LassoNodeClass *class; - g_assert(LASSO_IS_SAMLP_REQUEST_ABSTRACT(node)); - g_assert(requestID != NULL); - class = LASSO_NODE_GET_CLASS(node); - class->set_prop(LASSO_NODE (node), "RequestID", requestID); + if (LASSO_IS_SAMLP_REQUEST_ABSTRACT(node) && requestID != NULL) { + class = LASSO_NODE_GET_CLASS(node); + class->set_prop(LASSO_NODE (node), "RequestID", requestID); + } } /* obsolete method */ |
