summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-08-27 11:09:27 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-08-27 11:09:27 +0000
commit325f18984a0d4bc2b8b9c2067af901f9d542dedc (patch)
tree742a48fee2d6fe3e096d0613d5e7f9cfed3f399d
parent31aa53988b3d28ef575004985bbaf300e9dc7b0c (diff)
downloadlasso-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.c43
-rw-r--r--lasso/xml/samlp_request_abstract.c40
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 */