summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kellner <gicmo@src.gnome.org>2008-08-02 14:37:44 +0000
committerChristian Kellner <gicmo@src.gnome.org>2008-08-02 14:37:44 +0000
commitb2caf88da4ba72422e55d41497ec0f16adac709f (patch)
treedeb238a0490019341ed249082331839e9f03b94f
parenta3bd7416dbd48b9bc45f58c1b7f93e0d9ab591ae (diff)
downloadgvfs-b2caf88da4ba72422e55d41497ec0f16adac709f.tar.gz
545968 – leaks xml documents in error cases
Plug the leak! svn path=/trunk/; revision=1851
-rw-r--r--ChangeLog6
-rw-r--r--daemon/gvfsbackenddav.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5bdf18c3..5e9ab0e5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2008-08-02 Christian Kellner <gicmo@gnome.org>
+ * daemon/gvfsbackenddav.c: (parse_xml): Free the xml doc in
+ error cases. Plug the leaks, fix bug #545968, thanks to
+ Christian Persch <chpe@gnome.org> again!
+
+2008-08-02 Christian Kellner <gicmo@gnome.org>
+
* daemon/gvfsbackenddav.c:
Use XML_PARSE_NONET with xmlReadMemory when parsing the webdav
responses to disallow net access of the parser. Bug #545966
diff --git a/daemon/gvfsbackenddav.c b/daemon/gvfsbackenddav.c
index fbb1aa61..0fcaece3 100644
--- a/daemon/gvfsbackenddav.c
+++ b/daemon/gvfsbackenddav.c
@@ -527,13 +527,15 @@ parse_xml (SoupMessage *msg,
{
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
_("Empty response"));
+ xmlFreeDoc (doc);
return NULL;
}
if (strcmp ((char *) (*root)->name, name))
{
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
- _("Unexpected reply from server"));
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ _("Unexpected reply from server"));
+ xmlFreeDoc (doc);
return NULL;
}