summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2011-07-04 03:50:37 +0000
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>2011-07-04 03:50:37 +0000
commite4ac80b46f09b032640a67e3c8def93b2a557de1 (patch)
tree867bd8e3add633ea8170d284b0abb819e6c4339a
parentc6025ea2536c6ad3b2f4190d1b68d6d1173df1fe (diff)
downloadeet-e4ac80b46f09b032640a67e3c8def93b2a557de1.tar.gz
fix some segvs in eet_node
SVN revision: 60958
-rw-r--r--ChangeLog1
-rw-r--r--src/lib/eet_node.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index ce5520c..7685014 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -515,3 +515,4 @@
* Add functions to manipulate nodes:
eet_node_children_get, eet_node_next_get, eet_node_parent_get,
eet_node_type_get, eet_node_value_get, eet_node_name_get
+ * Fix segmentation faults in several eet_node functions
diff --git a/src/lib/eet_node.c b/src/lib/eet_node.c
index 771fe13..12bb0e6 100644
--- a/src/lib/eet_node.c
+++ b/src/lib/eet_node.c
@@ -213,6 +213,8 @@ eet_node_struct_child_new(const char *parent,
{
Eet_Node *n;
+ if (!child) return NULL;
+
if (child->type != EET_G_UNKNOWN)
return child;
@@ -254,6 +256,7 @@ eet_node_list_append(Eet_Node *parent,
const char *tmp;
Eet_Node *nn;
+ if ((!parent) || (!child)) return;
tmp = eina_stringshare_add(name);
for (nn = parent->values; nn; nn = nn->next)
@@ -296,6 +299,7 @@ eet_node_struct_append(Eet_Node *parent,
Eet_Node *prev;
Eet_Node *nn;
+ if ((!parent) || (!child)) return;
if (parent->type != EET_G_UNKNOWN)
{
ERR("[%s] is not a structure. Will not insert [%s] in it",
@@ -343,6 +347,8 @@ eet_node_hash_add(Eet_Node *parent,
{
Eet_Node *nn;
+ if ((!parent) || (!child)) return;
+
/* No list found, so create it. */
nn = eet_node_hash_new(name, key, child);