stats: Fix double free error
authorGrant Erickson <marathon96@gmail.com>
Mon, 31 Jan 2011 14:56:54 +0000 (15:56 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Mon, 31 Jan 2011 14:56:54 +0000 (15:56 +0100)
The error appears when stats_file_remap() fails.

src/stats.c

index 0dc45f0..929e09b 100644 (file)
@@ -222,10 +222,18 @@ static void stats_free(gpointer user_data)
        TFR(close(file->fd));
        file->fd = -1;
 
-       if (file->history_name != NULL)
+       if (file->history_name != NULL) {
                g_free(file->history_name);
-       g_free(file->name);
-       g_free(file);
+               file->history_name = NULL;
+       }
+
+       if (file->name != NULL) {
+               g_free(file->name);
+               file->name = NULL;
+       }
+
+       if (file != NULL)
+               g_free(file);
 }
 
 static void update_first(struct stats_file *file)