summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2012-04-09 11:42:08 -0400
committerDavid Zeuthen <davidz@redhat.com>2012-04-09 11:44:55 -0400
commitd870015bff4eb8f34f465f4c45d91ca326f52a43 (patch)
treed8d6ce148d3b42362dc45b6c2ce4b44928c502a1
parent54b1069f0f21d3d748ef5d2daa3e78ac0ab6e0aa (diff)
downloadgvfs-d870015bff4eb8f34f465f4c45d91ca326f52a43.tar.gz
udisks2: Fix some memory leaks
https://bugzilla.redhat.com/show_bug.cgi?id=790062 This was done using the following rather simple script #!/bin/bash while true; do losetup -f /home/davidz/Downloads/Fedora-16-x86_64-Live-Desktop.iso losetup -D done and then running it as root. Signed-off-by: David Zeuthen <davidz@redhat.com>
-rw-r--r--monitor/udisks2/gvfsudisks2volumemonitor.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/monitor/udisks2/gvfsudisks2volumemonitor.c b/monitor/udisks2/gvfsudisks2volumemonitor.c
index 58d121c8..3d5cbd52 100644
--- a/monitor/udisks2/gvfsudisks2volumemonitor.c
+++ b/monitor/udisks2/gvfsudisks2volumemonitor.c
@@ -593,6 +593,13 @@ get_mount_point_for_mount (GUnixMountEntry *mount_entry)
}
out:
+ for (l = mount_points; l != NULL; l = l->next)
+ {
+ GUnixMountPoint *mount_point = l->data;
+ if (G_LIKELY (mount_point != ret))
+ g_unix_mount_point_free (mount_point);
+ }
+ g_list_free (mount_points);
return ret;
}
@@ -700,6 +707,7 @@ should_include_mount (GVfsUDisks2VolumeMonitor *monitor,
if (mount_point != NULL)
{
ret = should_include_mount_point (monitor, mount_point);
+ g_unix_mount_point_free (mount_point);
goto out;
}
@@ -1500,6 +1508,7 @@ update_fstab_volumes (GVfsUDisks2VolumeMonitor *monitor,
!mount_point_has_device (monitor, mount_point))
{
new_mount_points = g_list_remove_link (new_mount_points, l);
+ g_unix_mount_point_free (mount_point);
}
}