Fix double free crash (#508224) Patch from Joe Marcus Clarke
authorAlexander Larsson <alexl@redhat.com>
Wed, 9 Jan 2008 08:08:43 +0000 (08:08 +0000)
committerAlexander Larsson <alexl@src.gnome.org>
Wed, 9 Jan 2008 08:08:43 +0000 (08:08 +0000)
2008-01-09  Alexander Larsson  <alexl@redhat.com>

        * fam/fam-helper.c:
        * fam/gfamdirectorymonitor.c:
        * fam/gfamfilemonitor.c:
Fix double free crash (#508224)
Patch from Joe Marcus Clarke

svn path=/trunk/; revision=6281

gio/ChangeLog
gio/fam/fam-helper.c
gio/fam/gfamdirectorymonitor.c
gio/fam/gfamfilemonitor.c

index 5f3a262..276f416 100644 (file)
@@ -1,3 +1,11 @@
+2008-01-09  Alexander Larsson  <alexl@redhat.com>
+
+        * fam/fam-helper.c:
+        * fam/gfamdirectorymonitor.c:
+        * fam/gfamfilemonitor.c:
+       Fix double free crash (#508224)
+       Patch from Joe Marcus Clarke
+
 008-01-07  Matthias Clasen  <mclasen@redhat.com>
 
        * === Released 2.15.1 ===
index fb48861..4301f12 100644 (file)
@@ -82,7 +82,7 @@ fam_do_iter_unlocked (void)
     cancelled = sub->cancelled;
     if (ev.code == FAMAcknowledge && cancelled)
       {
-       g_free (sub);
+       _fam_sub_free (sub);
        continue;
       }
     
index 96852bb..b947de7 100644 (file)
@@ -50,7 +50,6 @@ g_fam_directory_monitor_finalize (GObject *object)
     if (!_fam_sub_cancel (sub))
       g_warning ("Unexpected error cancelling fam monitor");
 
-    _fam_sub_free (sub);
     fam_monitor->sub = NULL;
   }
 
@@ -134,7 +133,6 @@ g_fam_directory_monitor_cancel (GFileMonitor* monitor)
     if (!_fam_sub_cancel (sub))
       g_warning ("Unexpected error cancelling fam monitor");
 
-    _fam_sub_free (sub);
     fam_monitor->sub = NULL;
   }
 
index be36318..78d3df9 100644 (file)
@@ -49,7 +49,6 @@ g_fam_file_monitor_finalize (GObject *object)
   if (sub) {
     if (!_fam_sub_cancel (sub))
       g_warning ("Unexpected error cancelling fam monitor");
-    _fam_sub_free (sub);
     fam_monitor->sub = NULL;
   }
 
@@ -132,7 +131,6 @@ g_fam_file_monitor_cancel (GFileMonitor* monitor)
   if (sub) {
     if (!_fam_sub_cancel (sub))
       g_warning ("Unexpected error cancelling fam monitor");
-    _fam_sub_free (sub);
     fam_monitor->sub = NULL;
   }