summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Cataldo <tcataldo@users.sourceforge.net>2004-01-23 10:58:45 +0000
committerRodrigo Moya <rodrigo@src.gnome.org>2004-01-23 10:58:45 +0000
commit1a98ce74a431eb67385742addd9b015266533e3a (patch)
tree513ae43a7289993f20e1a436c0edc410e6e1c0ed
parentdbd8db5f2ae85565616a5897cb26558342e07067 (diff)
downloadevolution-data-server-1a98ce74a431eb67385742addd9b015266533e3a.tar.gz
Fix leak.
2004-01-22 Thomas Cataldo <tcataldo@users.sourceforge.net> * libedataserver/e-xml-hash-utils.c: (e_xml_to_hash): Fix leak.
-rw-r--r--ChangeLog5
-rw-r--r--libedataserver/e-xml-hash-utils.c11
2 files changed, 14 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index dc605a4dd..1545b7790 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-01-22 Thomas Cataldo <tcataldo@users.sourceforge.net>
+
+ * libedataserver/e-xml-hash-utils.c: (e_xml_to_hash):
+ Fix leak.
+
2004-01-21 Rodrigo Moya <rodrigo@ximian.com>
* libedataserver/e-file-cache.[ch] (e_file_cache_remove): new function
diff --git a/libedataserver/e-xml-hash-utils.c b/libedataserver/e-xml-hash-utils.c
index 3616358f9..fce5c53c3 100644
--- a/libedataserver/e-xml-hash-utils.c
+++ b/libedataserver/e-xml-hash-utils.c
@@ -49,13 +49,20 @@ e_xml_to_hash (xmlDoc *doc, EXmlHashType type)
else
key = node->name;
+ if (!key) {
+ g_warning ("Key not found!!");
+ continue;
+ }
+
value = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
- if (!key || !value) {
- g_warning ("Found an entry with missing properties!!");
+ if (!value) {
+ xmlFree (key);
+ g_warning ("Found a key with no value!!");
continue;
}
g_hash_table_insert (hash, g_strdup (key), g_strdup (value));
+ xmlFree (key);
xmlFree (value);
}