diff -up gnome-desktop-2.23.90/libgnome-desktop/gnome-rr-config.c.rr-leaks gnome-desktop-2.23.90/libgnome-desktop/gnome-rr-config.c --- gnome-desktop-2.23.90/libgnome-desktop/gnome-rr-config.c.rr-leaks 2008-08-18 16:09:40.000000000 -0400 +++ gnome-desktop-2.23.90/libgnome-desktop/gnome-rr-config.c 2008-08-30 11:34:52.000000000 -0400 @@ -186,7 +186,7 @@ handle_start_element (GMarkupParseContex parser->configuration = g_new0 (GnomeRRConfig, 1); parser->configuration->clone = FALSE; - parser->configuration->outputs = g_new0 (GnomeOutputInfo *, 1); + parser->configuration->outputs = NULL; } else if (strcmp (name, "monitors") == 0) { @@ -656,6 +656,8 @@ outputs_free (GnomeOutputInfo **outputs) for (i = 0; outputs[i] != NULL; ++i) output_free (outputs[i]); + + g_free (outputs); } void diff -up gnome-desktop-2.23.90/libgnome-desktop/gnome-rr.c.rr-leaks gnome-desktop-2.23.90/libgnome-desktop/gnome-rr.c --- gnome-desktop-2.23.90/libgnome-desktop/gnome-rr.c.rr-leaks 2008-08-30 11:34:52.000000000 -0400 +++ gnome-desktop-2.23.90/libgnome-desktop/gnome-rr.c 2008-08-30 11:34:52.000000000 -0400 @@ -719,6 +719,11 @@ output_initialize (GnomeRROutput *output static void output_free (GnomeRROutput *output) { + g_free (output->clones); + g_free (output->modes); + g_free (output->possible_crtcs); + g_free (output->edid_data); + g_free (output->name); g_free (output); }