summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <matthiasc@src.gnome.org>2008-08-25 13:27:36 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2008-08-25 13:27:36 +0000
commit05e2dd440809840c88e07189d8b8fe66c917949b (patch)
tree7abb3d3d6867fb3d5476d9a39f00b9553f666b1d
parent961c3f0d8c0f4a43782c0df25eebc85f2944913d (diff)
downloadgvfs-05e2dd440809840c88e07189d8b8fe66c917949b.tar.gz
Plug some leaks on error paths
svn path=/trunk/; revision=1907
-rw-r--r--ChangeLog11
-rw-r--r--common/gdbusutils.c1
-rw-r--r--common/gmountoperationdbus.c2
-rw-r--r--daemon/gvfsbackendgphoto2.c27
-rw-r--r--daemon/gvfsbackendtrash.c2
-rw-r--r--daemon/gvfsjobsetattribute.c4
6 files changed, 40 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index c33c4978..4efda64c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2008-08-25 Matthias Clasen <mclasen@redhat.com>
+
+ Bug 549253 – error path leaks
+
+ * common/gmountoperationdbus.c:
+ * common/gdbusutils.c:
+ * daemon/gvfsbackendgphoto2.c:
+ * daemon/gvfsbackendtrash.c:
+ * daemon/gvfsjobsetattribute.c: Plug some leaks on
+ error paths.
+
2008-08-25 Bastien Nocera <hadess@hadess.net>
* daemon/gvfsbackenddav.c (ms_response_to_file_info):
diff --git a/common/gdbusutils.c b/common/gdbusutils.c
index e55016dd..c4282452 100644
--- a/common/gdbusutils.c
+++ b/common/gdbusutils.c
@@ -1348,6 +1348,7 @@ _g_dbus_connection_call_async (DBusConnection *connection,
g_set_error_literal (&data->io_error, G_IO_ERROR, G_IO_ERROR_FAILED,
"Can't open dbus connection");
g_idle_add (async_call_error_at_idle, data);
+ dbus_error_free (&derror);
return;
}
}
diff --git a/common/gmountoperationdbus.c b/common/gmountoperationdbus.c
index f3f5cf5f..1027b3a9 100644
--- a/common/gmountoperationdbus.c
+++ b/common/gmountoperationdbus.c
@@ -225,6 +225,7 @@ mount_op_ask_password (GMountOperationDBus *op_dbus,
if (!dbus_connection_send (op_dbus->connection, reply, NULL))
_g_dbus_oom ();
dbus_message_unref (reply);
+ dbus_error_free (&error);
return;
}
@@ -297,6 +298,7 @@ mount_op_ask_question (GMountOperationDBus *op_dbus,
if (!dbus_connection_send (op_dbus->connection, reply, NULL))
_g_dbus_oom ();
dbus_message_unref (reply);
+ dbus_error_free (&error);
return;
}
diff --git a/daemon/gvfsbackendgphoto2.c b/daemon/gvfsbackendgphoto2.c
index 6e187332..f06605c1 100644
--- a/daemon/gvfsbackendgphoto2.c
+++ b/daemon/gvfsbackendgphoto2.c
@@ -1324,6 +1324,7 @@ ensure_ignore_prefix (GVfsBackendGphoto2 *gphoto2_backend, GVfsJob *job)
{
error = get_error_from_gphoto2 (_("Failed to get folder list"), rc);
g_vfs_job_failed_from_error (job, error);
+ g_error_free (error);
return FALSE;
}
@@ -1657,6 +1658,7 @@ do_unmount (GVfsBackend *backend,
num_open_files),
num_open_files);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
return;
}
@@ -1718,6 +1720,7 @@ do_open_for_read (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Error creating file object"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
free_read_handle (read_handle);
goto out;
}
@@ -1732,6 +1735,7 @@ do_open_for_read (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Error getting file"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
free_read_handle (read_handle);
goto out;
}
@@ -1741,6 +1745,7 @@ do_open_for_read (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Error getting data from file"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
free_read_handle (read_handle);
goto out;
}
@@ -1885,9 +1890,11 @@ do_query_info (GVfsBackend *backend,
split_filename_with_ignore_prefix (gphoto2_backend, filename, &dir, &name);
+ error = NULL;
if (!file_get_info (gphoto2_backend, dir, name, info, &error, FALSE))
{
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
}
else
{
@@ -1909,7 +1916,6 @@ try_query_info (GVfsBackend *backend,
GFileAttributeMatcher *matcher)
{
GVfsBackendGphoto2 *gphoto2_backend = G_VFS_BACKEND_GPHOTO2 (backend);
- GError *error;
char *dir;
char *name;
gboolean ret;
@@ -1920,7 +1926,7 @@ try_query_info (GVfsBackend *backend,
split_filename_with_ignore_prefix (gphoto2_backend, filename, &dir, &name);
- if (!file_get_info (gphoto2_backend, dir, name, info, &error, TRUE))
+ if (!file_get_info (gphoto2_backend, dir, name, info, NULL, TRUE))
{
DEBUG (" BUU no info from cache for try_query_info (%s)", filename);
goto out;
@@ -2007,6 +2013,7 @@ do_enumerate (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Failed to get folder list"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
g_free (filename);
return;
}
@@ -2025,9 +2032,11 @@ do_enumerate (GVfsBackend *backend,
gp_list_get_name (list, n, &name);
DEBUG (" enum folder '%s'", name);
info = g_file_info_new ();
+ error = NULL;
if (!file_get_info (gphoto2_backend, filename, name, info, &error, FALSE))
{
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
g_list_foreach (l, (GFunc) g_object_unref, NULL);
g_list_free (l);
gp_list_free (list);
@@ -2070,6 +2079,7 @@ do_enumerate (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Failed to get file list"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
g_free (filename);
return;
}
@@ -2089,9 +2099,11 @@ do_enumerate (GVfsBackend *backend,
DEBUG (" enum file '%s'", name);
info = g_file_info_new ();
+ error = NULL;
if (!file_get_info (gphoto2_backend, filename, name, info, &error, FALSE))
{
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
g_list_foreach (l, (GFunc) g_object_unref, NULL);
g_list_free (l);
gp_list_free (list);
@@ -2359,6 +2371,7 @@ do_make_directory (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Error creating directory"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
goto out;
}
@@ -2588,6 +2601,7 @@ do_set_display_name (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Error renaming dir"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
goto out;
}
caches_invalidate_file (gphoto2_backend, dir, name);
@@ -2600,6 +2614,7 @@ do_set_display_name (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Error renaming file"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
goto out;
}
caches_invalidate_file (gphoto2_backend, dir, name);
@@ -2674,6 +2689,7 @@ do_delete (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Error deleting directory"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
goto out;
}
caches_invalidate_file (gphoto2_backend, dir, name);
@@ -2699,6 +2715,7 @@ do_delete (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Error deleting file"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
goto out;
}
@@ -2798,6 +2815,7 @@ do_create_internal (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Cannot allocate new file to append to"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
write_handle_free (handle);
goto out;
}
@@ -2812,6 +2830,7 @@ do_create_internal (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Cannot read file to append to"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
write_handle_free (handle);
gp_file_unref (file);
goto out;
@@ -2822,6 +2841,7 @@ do_create_internal (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Cannot get data of file to append to"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
write_handle_free (handle);
gp_file_unref (file);
goto out;
@@ -3108,6 +3128,7 @@ do_close_write (GVfsBackend *backend,
{
error = get_error_from_gphoto2 (_("Error writing file"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
goto out;
}
@@ -3210,6 +3231,7 @@ do_move (GVfsBackend *backend,
DEBUG (" error renaming dir");
error = get_error_from_gphoto2 (_("Error renaming dir"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
goto out;
}
}
@@ -3222,6 +3244,7 @@ do_move (GVfsBackend *backend,
DEBUG (" error renaming file");
error = get_error_from_gphoto2 (_("Error renaming file"), rc);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
+ g_error_free (error);
goto out;
}
}
diff --git a/daemon/gvfsbackendtrash.c b/daemon/gvfsbackendtrash.c
index 8a70508e..5c854a36 100644
--- a/daemon/gvfsbackendtrash.c
+++ b/daemon/gvfsbackendtrash.c
@@ -561,7 +561,7 @@ list_trash_dirs (void)
{
dirs = g_list_prepend (dirs, home_trash);
if (statbuf.st_nlink != 2)
- has_trash_files = TRUE;;
+ has_trash_files = TRUE;
}
else
g_free (home_trash);
diff --git a/daemon/gvfsjobsetattribute.c b/daemon/gvfsjobsetattribute.c
index 0b88d81f..3904a3f2 100644
--- a/daemon/gvfsjobsetattribute.c
+++ b/daemon/gvfsjobsetattribute.c
@@ -86,7 +86,6 @@ g_vfs_job_set_attribute_new (DBusConnection *connection,
GVfsJobSetAttribute *job;
DBusMessage *reply;
DBusMessageIter iter, array_iter;
- DBusError derror;
const gchar *filename = NULL;
gint filename_len;
GFileQueryInfoFlags flags;
@@ -95,8 +94,6 @@ g_vfs_job_set_attribute_new (DBusConnection *connection,
GFileAttributeType type;
GDbusAttributeValue value;
- dbus_error_init (&derror);
-
dbus_message_iter_init (message, &iter);
if (dbus_message_iter_get_arg_type (&iter) == DBUS_TYPE_ARRAY &&
@@ -121,7 +118,6 @@ g_vfs_job_set_attribute_new (DBusConnection *connection,
reply = dbus_message_new_error (message,
DBUS_ERROR_FAILED,
_("Invalid dbus message"));
- dbus_error_free (&derror);
dbus_connection_send (connection, reply, NULL);
return NULL;