From c96bc4ead7779af1617f505e1590ab8652242ad0 Mon Sep 17 00:00:00 2001 From: Rodrigo Moya Date: Fri, 5 Nov 2010 15:44:43 +0100 Subject: housekeeping: Don't access free'd memory if a volume is unmounted whilst the dialog is displayed --- plugins/housekeeping/msd-disk-space.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'plugins') diff --git a/plugins/housekeeping/msd-disk-space.c b/plugins/housekeeping/msd-disk-space.c index 6842ae5..e36be16 100644 --- a/plugins/housekeeping/msd-disk-space.c +++ b/plugins/housekeeping/msd-disk-space.c @@ -181,7 +181,7 @@ ldsm_notify_for_mount (LdsmMountInfo *mount, gboolean has_trash; gboolean has_disk_analyzer; gboolean retval = TRUE; - const gchar *path; + gchar *path; /* Don't show a dialog if one is already displayed */ if (dialog) @@ -190,7 +190,7 @@ ldsm_notify_for_mount (LdsmMountInfo *mount, name = g_unix_mount_guess_name (mount->mount); free_space = (gint64) mount->buf.f_frsize * (gint64) mount->buf.f_bavail; has_trash = ldsm_mount_has_trash (mount); - path = g_unix_mount_get_mount_path (mount->mount); + path = g_strdup (g_unix_mount_get_mount_path (mount->mount)); program = g_find_program_in_path (DISK_SPACE_ANALYZER); has_disk_analyzer = (program != NULL); @@ -218,7 +218,7 @@ ldsm_notify_for_mount (LdsmMountInfo *mount, break; case MSD_LDSM_DIALOG_RESPONSE_ANALYZE: retval = FALSE; - ldsm_analyze_path (g_unix_mount_get_mount_path (mount->mount)); + ldsm_analyze_path (path); break; case MSD_LDSM_DIALOG_RESPONSE_EMPTY_TRASH: retval = TRUE; @@ -232,6 +232,8 @@ ldsm_notify_for_mount (LdsmMountInfo *mount, g_assert_not_reached (); } + g_free (path); + return retval; } -- cgit v1.2.1