summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2011-03-29 18:06:07 +0200
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2011-03-29 18:43:47 +0200
commit8df7a0022c90b39ed2da8685d882a20d8d9b9c02 (patch)
treefaf0fd71ed6da38b0a9faf806b170b880d0c0987
parent04dd5610b0d5905a543774b0753e76f245456b37 (diff)
[saml2] improve reporting of errors when loading a provider metadata file
-rw-r--r--lasso/saml-2.0/provider.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/lasso/saml-2.0/provider.c b/lasso/saml-2.0/provider.c
index 35beeaa9..91373f3d 100644
--- a/lasso/saml-2.0/provider.c
+++ b/lasso/saml-2.0/provider.c
@@ -25,6 +25,7 @@
#define _POSIX_SOURCE
#include <errno.h>
+#include <string.h>
#include "../xml/private.h"
#include <xmlsec/base64.h>
@@ -423,6 +424,8 @@ lasso_saml20_provider_load_metadata(LassoProvider *provider, xmlNode *root_node)
{
xmlNode *node, *descriptor_node;
xmlChar *providerID;
+ xmlChar providerID_cpy[150] = "";
+
LassoProviderPrivate *pdata = provider->private_data;
static const struct {
char *name;
@@ -459,6 +462,7 @@ lasso_saml20_provider_load_metadata(LassoProvider *provider, xmlNode *root_node)
providerID = xmlGetProp(node, (xmlChar*)"entityID");
g_return_val_if_fail(providerID, FALSE);
lasso_assign_string(provider->ProviderID, (char*)providerID);
+ g_strlcpy((char*) providerID_cpy, (char*) providerID, 150);
lasso_release_xml_string(providerID);
/* initialize roles */
pdata->roles = LASSO_PROVIDER_ROLE_NONE;
@@ -497,10 +501,11 @@ lasso_saml20_provider_load_metadata(LassoProvider *provider, xmlNode *root_node)
/* We must at least load one descriptor, and we must load a descriptor for our
* assigned role or we fail. */
if (! loaded_one_or_more_descriptor) {
- warning("No descriptor was loaded, failing");
+ warning("%s: No descriptor was loaded, failing", providerID_cpy);
}
if ((pdata->roles & provider->role) == 0) {
- warning("Loaded roles and prescribed role does not intersect");
+ warning("%s: Loaded roles and prescribed role does not intersect",
+ providerID_cpy);
}
return FALSE;
}