diff options
| author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-09-14 15:53:46 +0000 |
|---|---|---|
| committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-09-14 15:53:46 +0000 |
| commit | 48651a55d88f57cd882579b197496e83bbc4caa3 (patch) | |
| tree | d61537d3d605f09d9d08e64729a48373be9512ea | |
| parent | 648b65714bdd5a5b7d98d16633a270482e6762b1 (diff) | |
Added tests if required attributes in lasso_register_name_identifier_request_new_from_query() are not found.
| -rw-r--r-- | lasso/Attic/protocols/register_name_identifier_request.c | 66 |
1 files changed, 65 insertions, 1 deletions
diff --git a/lasso/Attic/protocols/register_name_identifier_request.c b/lasso/Attic/protocols/register_name_identifier_request.c index 14d1c45f..c48c279d 100644 --- a/lasso/Attic/protocols/register_name_identifier_request.c +++ b/lasso/Attic/protocols/register_name_identifier_request.c @@ -168,6 +168,11 @@ lasso_register_name_identifier_request_new_from_query(const xmlChar *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(request); + return NULL; + } lasso_samlp_request_abstract_set_requestID(LASSO_SAMLP_REQUEST_ABSTRACT(request), str); /* MajorVersion */ @@ -176,14 +181,28 @@ lasso_register_name_identifier_request_new_from_query(const xmlChar *query) /* 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(request); + return NULL; + } lasso_samlp_request_abstract_set_minorVersion(LASSO_SAMLP_REQUEST_ABSTRACT(request), 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(request); + return NULL; + } lasso_samlp_request_abstract_set_issueInstant(LASSO_SAMLP_REQUEST_ABSTRACT(request), str); /* ProviderID */ - str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProviderID"), 0); + str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "ProviderID"), 0); if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(request); + return NULL; + } lasso_lib_register_name_identifier_request_set_providerID(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request), str); /* RelayState */ @@ -193,10 +212,25 @@ lasso_register_name_identifier_request_new_from_query(const xmlChar *query) /* IDPProvidedNameIdentifier */ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IDPProvidedNameIdentifier"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(request); + return NULL; + } idpidentifier = lasso_lib_idp_provided_name_identifier_new(str); str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IDPNameQualifier"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(request); + return NULL; + } lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(idpidentifier), str); str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "IDPFormat"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(request); + return NULL; + } lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(idpidentifier), str); lasso_lib_register_name_identifier_request_set_idpProvidedNameIdentifier(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request), @@ -205,10 +239,25 @@ lasso_register_name_identifier_request_new_from_query(const xmlChar *query) /* SPPProvidedNameIdentifier */ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "SPProvidedNameIdentifier"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(request); + return NULL; + } spidentifier = lasso_lib_sp_provided_name_identifier_new(str); str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "SPNameQualifier"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(request); + return NULL; + } lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(spidentifier), str); str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "SPFormat"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(request); + return NULL; + } lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(spidentifier), str); lasso_lib_register_name_identifier_request_set_spProvidedNameIdentifier(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request), @@ -217,10 +266,25 @@ lasso_register_name_identifier_request_new_from_query(const xmlChar *query) /* OldPProvidedNameIdentifier */ str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "OldProvidedNameIdentifier"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(request); + return NULL; + } oldidentifier = lasso_lib_old_provided_name_identifier_new(str); str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "OldNameQualifier"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(request); + return NULL; + } lasso_saml_name_identifier_set_nameQualifier(LASSO_SAML_NAME_IDENTIFIER(oldidentifier), str); str = lasso_g_ptr_array_index((GPtrArray *)g_datalist_get_data(&gd, "OldFormat"), 0); + if (str == NULL) { + g_datalist_clear(&gd); + g_object_unref(request); + return NULL; + } lasso_saml_name_identifier_set_format(LASSO_SAML_NAME_IDENTIFIER(oldidentifier), str); lasso_lib_register_name_identifier_request_set_oldProvidedNameIdentifier(LASSO_LIB_REGISTER_NAME_IDENTIFIER_REQUEST(request), |
