summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2006-12-27 16:06:35 +0000
committerFrederic Peters <fpeters@entrouvert.com>2006-12-27 16:06:35 +0000
commit807403d5a656300f9e2834c033ba90754f1e31cd (patch)
tree3afb35b6090547d3d9b579114c35abf67864ed20
parent9b9166d797689dc0ab90e50d0b02d757c5dd1137 (diff)
avoid segfaults when passing NULL to *_new_from_dump
-rw-r--r--lasso/id-ff/login.c3
-rw-r--r--lasso/id-ff/logout.c3
-rw-r--r--lasso/id-ff/name_registration.c3
-rw-r--r--lasso/id-ff/provider.c3
4 files changed, 12 insertions, 0 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c
index 50fd5bf5..4b27a8f6 100644
--- a/lasso/id-ff/login.c
+++ b/lasso/id-ff/login.c
@@ -2016,6 +2016,9 @@ lasso_login_new_from_dump(LassoServer *server, const gchar *dump)
LassoLogin *login;
xmlDoc *doc;
+ if (dump == NULL)
+ return NULL;
+
login = g_object_new(LASSO_TYPE_LOGIN, NULL);
doc = xmlParseMemory(dump, strlen(dump));
init_from_xml(LASSO_NODE(login), xmlDocGetRootElement(doc));
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c
index 3e43cae9..c08b1760 100644
--- a/lasso/id-ff/logout.c
+++ b/lasso/id-ff/logout.c
@@ -1117,6 +1117,9 @@ lasso_logout_new_from_dump(LassoServer *server, const char *dump)
LassoLogout *logout;
xmlDoc *doc;
+ if (dump == NULL)
+ return NULL;
+
logout = lasso_logout_new(g_object_ref(server));
doc = xmlParseMemory(dump, strlen(dump));
init_from_xml(LASSO_NODE(logout), xmlDocGetRootElement(doc));
diff --git a/lasso/id-ff/name_registration.c b/lasso/id-ff/name_registration.c
index eeb21a01..8d7dc9b1 100644
--- a/lasso/id-ff/name_registration.c
+++ b/lasso/id-ff/name_registration.c
@@ -733,6 +733,9 @@ lasso_name_registration_new_from_dump(LassoServer *server, const char *dump)
LassoNameRegistration *name_registration;
xmlDoc *doc;
+ if (dump == NULL)
+ return NULL;
+
name_registration = lasso_name_registration_new(server);
doc = xmlParseMemory(dump, strlen(dump));
init_from_xml(LASSO_NODE(name_registration), xmlDocGetRootElement(doc));
diff --git a/lasso/id-ff/provider.c b/lasso/id-ff/provider.c
index 04b4e3a3..92f38d63 100644
--- a/lasso/id-ff/provider.c
+++ b/lasso/id-ff/provider.c
@@ -890,6 +890,9 @@ lasso_provider_new_from_dump(const gchar *dump)
LassoProvider *provider;
xmlDoc *doc;
+ if (dump == NULL)
+ return NULL;
+
provider = g_object_new(LASSO_TYPE_PROVIDER, NULL);
doc = xmlParseMemory(dump, strlen(dump));
init_from_xml(LASSO_NODE(provider), xmlDocGetRootElement(doc));